10進数 | 2進数 | 16進数 |
0 | 0 | 0x0 |
1 | 1 | 0x1 |
2 | 10 | 0x2 |
4 | 100 | 0x4 |
8 | 1000 | 0x8 |
10 | 1010 | 0xA |
15 | 1111 | 0xF |
10進数 | 2進数 | 16進数 |
16 | 10000 | 0x10 |
32 | 100000 | 0x20 |
100 | 1100100 | 0x64 |
255 | 11111111 | 0xFF |
256 | 100000000 | 0x100 |
512 | 1000000000 | 0x200 |
1024 | 10000000000 | 0x400 |
int i = 2, j = 0xFF; ... i = i << 2; /* 2ビット左シフト : 4倍 */ j >>= 2; /* 2ビット右シフト : 4分の1 */ |
flag |= 0x05; /* 1、3番目のビットを1にする (0x05:00000101) */ if(flag & 0x01) printf("1"); else printf("0"); if(flag & 0x02) printf("1"); else printf("0"); if(flag & 0x04) printf("1"); else printf("0"); if(flag & 0x08) printf("1"); else printf("0"); printf("\n"); flag ^= 0x01; /* 1番目のビットを消去 */ |
数値1(2進数) | 数値2(2進数) | AND[&] | OR[|] | XOR[^] | |
0 | 0 | 0 | 0 | 0 | |
0 | 1 | 0 | 1 | 1 | |
1 | 1 | 1 | 1 | 0 | |
11111111 | 00100010 | 00100010 | 11111111 | 11011101 | |
01010101 | 10101010 | 00000000 | 11111111 | 00000000 | |
00001111 | 00001111 | 00001111 | 00001111 | 00000000 | |
00000000 | 11011001 | 00000000 | 11011001 | 11011001 |