This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| et:software:homelab:library:bit [2010/02/11 13:28] – mikk.leini | et:software:homelab:library:bit [2020/07/20 12:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Bitioperatsioonid ====== | ====== Bitioperatsioonid ====== | ||
| - | Bitioperatsioonide teek on üldkasutatav makrofunktsioonide kogum tüüpiliste bititehete teostamiseks. | + | Bitioperatsioonide teek on üldkasutatav makrofunktsioonide kogum tüüpiliste bititehete teostamiseks. |
| Bitiindeksiks loetakse biti järjekorranumbrit, | Bitiindeksiks loetakse biti järjekorranumbrit, | ||
| Line 63: | Line 63: | ||
| ===== Lähtekood ===== | ===== Lähtekood ===== | ||
| - | Järgnevalt on lühendatud kujul toodud teegi lähtekood: | + | Järgnevalt on lühendatud kujul toodud teegi lähtekood, kust on näha, mis iga makrofunktsiooni taga peitub: |
| <code c> | <code c> | ||
| - | #define bit_mask(bit) | + | // |
| - | #define bit_set(value, | + | // Funktsioonid bittidega tegelemiseks |
| - | #define bit_clear(value, | + | // |
| - | #define bit_invert(value, | + | #define bit_mask(bit) |
| - | #define bit_is_set(value, | + | #define bit_set(value, |
| - | #define bit_is_clear(value, | + | #define bit_clear(value, |
| - | #define bit_set_to(value, | + | #define bit_invert(value, |
| - | value = ((state) ? (value | bit_mask(bit)) : (value & ~bit_mask(bit))) | + | #define bit_is_set(value, |
| + | #define bit_is_clear(value, | ||
| + | #define bit_set_to(v, b, x) v = ((x) ? (v | bit_mask(b)) : (v & ~bit_mask(b))) | ||
| + | |||
| + | // | ||
| + | // Funktsioonid bitimaskidega tegelemiseks | ||
| + | // | ||
| + | #define bitmask_set(value, | ||
| + | #define bitmask_clear(value, bitMask) | ||
| + | #define bitmask_invert(value, bitMask) | ||
| + | #define bitmask_set_to(v, m, x) v = ((x) ? (v | (m)) : (v & ~(m))) | ||
| + | #define bitmask_is_set(value, | ||
| </ | </ | ||