OPERACIJE S BITOVIMA
C ima mogućnost direktnog manipuliranja
bitovima, a dozvoljene operacije su,
| Operacije | Operator | Komentar | Vrijednost sume prije | Vrijednost sume poslije |
| AND (log. I) | & | sum = sum & 2; | 4 | 0 |
| OR (log. ILI) | | | sum = sum | 2; | 4 | 6 |
| Exclusive OR (ekskluzivno ILI) | ^ | sum = sum ^ 2; | 4 | 6 |
| 1's Complement (komplement) | ~ | sum = ~sum; | 4 | -5 |
| Left Shift (pomak ulijevo) | << | sum = sum << 2; | 4 | 16 |
| Right Shift (pomak udesno) | >> | sum = sum >> 2; | 4 | 0 |
/* Primjer programa sa << and >> */
#include <stdio.h>
main()
{
int n1 = 10, n2 = 20, i = 0;
i = n2 << 4; /* n2 se pomiče ulijevo 4 puta */
printf("%d\n", i);
i = n1 >> 5; /* n1 se pomiče udesno 5 puta */
printf("%d\n", i);
}
Ispis programa
320 0
/* Primjer programa koji koristi EOR operator */ #include <stdio.h> main() { int value1 = 2, value2 = 4; value1 ^= value2; value2 ^= value1; value1 ^= value2; printf("Value1 = %d, Value2 = %d\n", value1, value2); } Ispis programa Value1 = 4, Value2 = 2
/* Primjer programa koji koristi AND operator */ #include <stdio.h> main() { int loop; for( loop = 'a'; loop <= 'f'; loop++ ) printf("Loop = %c, AND 0xdf = %c\n", loop, loop & 0xdf); } Ispis programa Loop = a, AND 0xdf = A Loop = b, AND 0xdf = B Loop = c, AND 0xdf = C Loop = d, AND 0xdf = D Loop = e, AND 0xdf = E Loop = f, AND 0xdf = F