| 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 |