#include <stdio.h>
#include <stdint.h>
unsigned char a= 0;
int main()
{
a |= (1<<7);
printf("%d\n", a);
printf("%d\n", a&(1<<7));
return 0;
}
Wynik to:
128
128
nie powinno być:
128
1
?
#include <stdio.h>
#include <stdint.h>
unsigned char a= 0;
int main()
{
a |= (1<<7);
printf("%d\n", a);
printf("%d\n", a&(1<<7));
return 0;
}
Wynik to:
128
128
nie powinno być:
128
1
?
Nie. Bo ten bit jest na pozycji nr 7, więc musisz go przesunąć do najmniej znaczącej pozycji (>>7).
10000000 = 128