0006、数据——整数存储
返回:网络安全知识库 · 上一节:数据:存储宽度 · 下一节:调试器基础与反汇编阅读
整数类型
1 Byte = 8 Bit = 256 种状态
无符号数:0 ~ 255,有符号数:-128 ~ 127
0x7F = 127,0x80 = -128,0xFF = -1
| 类型 | 二进制范围(Bit 7 ~ Bit 0) | 十进制范围 | 十六进制范围 | 说明 |
|---|---|---|---|---|
| 无符号数 unsigned char | 0000 0000 ~ 1111 1111 | 0 ~ 255 | 0x00 ~ 0xFF | 全部 256 个数都表示非负数 |
| 有符号数 signed char(正数) | 0000 0000 ~ 0111 1111 | 0 ~ 127 | 0x00 ~ 0x7F | 最高位 Bit 7 为 0,表示正数或 0 |
| 有符号数 signed char(负数) | 1000 0000 ~ 1111 1111 | -128 ~ -1 | 0x80 ~ 0xFF | 最高位 Bit 7 为 1,表示负数,使用补码表示 |

存储规则
正数的原码、反码、补码都一样。负数的补码 = 反码 + 1。
注意:计算机中整数实际存储的是补码。
| 类型 | Unsigned(无符号数) | Signed(有符号数) |
|---|---|---|
| 原码 | 数值本身的绝对值 | 最高有效位(MSB)是符号位,其余位表示数值本身的绝对值 |
| 反码 | 反码和原码一样 | 符号位不变,其余各位对原码进行取反 |
| 补码 | 补码和原码一样 | 反码 + 1 |
| 数值 | 1 | -1 | 9 | -4 |
|---|---|---|---|---|
| 原码 | 0000 0001 | 1000 0001 | 0000 1001 | 1000 0100 |
| 反码 | 0000 0001 | 1111 1110 | 0000 1001 | 1111 1011 |
| 补码 | 0000 0001 | 1111 1111 | 0000 1001 | 1111 1100 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ruiqy~!










