整数类型

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,表示负数,使用补码表示

328895c9-074e-4ec1-ae3d-8735084a6328

存储规则

正数的原码、反码、补码都一样。负数的补码 = 反码 + 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