1. bit(比特)
1 bit = 1 个二进制位,只能存 0 或者 1。它是计算机最小的数据单位。
举例:1→ 占 1bit0→ 占 1bit
2. Byte(字节)
1 字节 (Byte) = 8 bit
plaintext
1字节: b7 b6 b5 b4 b3 b2 b1 b0 7位 ... 0位⚠️ 编号从0 开始!最右边是第 0 位,不是第 1 位。
- 1 字节范围(无符号):二进制
00000000 ~ 11111111,对应十进制 0 ~ 255 char在 C 语言就是 1 字节,8bit。
3. 二进制
只有 0 和 1,逢 2 进 1。 示例(1 字节 8 位)
plaintext
00000001 → 十进制 1 00000010 → 十进制 2 00000100 → 十进制 4 00001000 → 十进制 8某一位为 1,就代表 2 的 n 次方。 第 0 位 → \(2^0=1\) 第 1 位 → \(2^1=2\) 第 2 位 → \(2^2=4\) 第 3 位 → \(2^3=8\)
4. 十六进制
二进制写一长串很累,于是用十六进制简写。 1 位十六进制 = 4 个 bit。
plaintext
0~9,A B C D E F A=10,B=11,C=12,D=13,E=14,F=151 字节 = 8bit = 两位十六进制。
C 语言写法,前面加0x:
c
0x01; //二进制 0000 0001 0x0F; //二进制 0000 1111 0xFF; //二进制 1111 1111记忆:0xF= 4 个 1 →1111
5. 移位 <<>>(左移、右移)
<<左移:整体向左挪,右边补 0。1 << 0→ 0b00000001 第 0 位为 11 << 1→ 0b00000010 第 1 位为 11 << 3→ 0b00001000 第 3 位为 1
1 << n的含义:把第 n 位置为 1,其余位 0。这个后面寄存器操作天天用。
>>右移:整体向右挪。0b1000 >> 2→0b0010