数据宽度
因为计算机受硬件制约,数据都是有长度限制的(数据宽度),超过最多宽度的数据会被丢弃
计算机中常见的数据宽度:
- 位(BIT) -> 一个0或1
- 字节(BYTE) =8位 范围 0-> FF
- 字(Word) = 16位 0->FFFF
- 双字(DoubleWord) = 32位 0-FFFFFFFF
超过范围的数会被丢弃
有符号数和无符号数
有符号数还是无符号数是个人约定的
无符号数规则
本身是什么,那么内存中就存什么,也就是本身的绝对值
有符号数规则
如果最高位是0 那么是正数,编码规则跟无符号数一样
如果最高位是1 这个数就是负数,编码规则往下看
有符号数 编码规则
规则 | 正数 | 负数 |
---|---|---|
原码 | 最高位为符号位,其余各位为数值本身的绝对值 | |
反码 | 反码与原码相同 | 符号位为1,其余位对原码取反 |
补码 | 补码与原码相同 | 符号位为1,其余位对原码取反加1 |
举例: (数据宽度 8bit 1字节)
10进制数 | 原码 | 反码 | 补码 |
---|---|---|---|
1 | 0000 0001 | 0000 0001 | 0000 0001 |
-1 | 1000 0001 | 1111 1110 | 1111 1111 |
-7 | 1000 0111 | 1111 1000 | 1111 1001 |
正数原码存储,负数补码存储