0
↙ ↓ ↘
& | ^
↙ ↓ ↙ ↘ ↓ ↘
0 1 0 1 0 1
↓ ↓ ↓ ↓ ↓ ↓
0 0 0 1 0 1
1
↙ ↓ ↘
& | ^
↙ ↓ ↙ ↘ ↓ ↘
0 1 0 1 0 1
↓ ↓ ↓ ↓ ↓ ↓
0 1 1 1 1 0
置0: x &= 0
置1: x |= 1
读: x & 1
取反: x ^= 1
把 i 置零:
i = i or i
xor %ax,%ax // 汇编常用到
从 1 开始,每次向左移 10 位,都是 2 的整10倍次方.
lg(10n) = n
1 << n = 2n, n>0
1 << 10n = 210n
#define LOG2ENV = 10 // 1010
异或
与 1 异或则取反,与 0 异或则不变.
用途:
- 特定位反转-与指定为为 1 的二进制串异或
- 置 0: 与本身异或, 把所有的 1 取反了.
- 16 << 20 // 16M
- 1 << 20 // 1M
- 1M = 1K * 1K = 210*210=220
| 十六进制 | 十进制 |
|---|---|
| 0x00000010 Byte | 16KB |
| 0x00001000 Byte | 4KB |
| 0x00100000 Byte | 1MB |
| 0x01000000 Byte | 16MB |
| 0x08000000 Byte | 128MB(qemu 默认) |
| 0x10000000 Byte | 256MB |
| 0x40000000 Byte | 1GB |
| 0x80000000 Byte | 2GB |
| 0xFFFFFFFF Byte | 4GB-1B |
在计算机科学中,GB通常实际上值得是GiB.
GB意思是G个** byte**Gb意思是G个** bit**
通常所说的都是GB.
只需记住,数学上 M是兆,G是千兆,即 1 000 000 000 = 109 = 10003, 而 1000 近似 1024 即 210, 那么 在计算机概念中,1G =210·3 = 230, 所以 4GB = 232byte.