原码反码补码移码
原码:
数值直接转为二进制数,负数的最高位 置1。
以8位为例:
+1的原码为0000 0001,-1的原码为1000 0001.
+127的原码为0111 1111,-127的原码为1111 1111.
+0的原码为0000 0000,-0的原码为1000 0000.
反码:
①正数的反码和原码相同
②负数的反码,在原码基础上,符号位不变,其余各位取反
以8位为例:
-1的反码为1111 1110
-127的反码为1000 0000
-0的反码为1111 1111
补码:
①正数的补码和原码相同
②负数的补码,在反码基础上,加一
以8位为例:
【原码反码补码移码】-1的补码为1111 1111
-127的补码为:1000 0001
+0的补码=-0的补码,为0000 0000
移码:
移码=补码+偏移量
当机器字长为8,偏移量为127时,移码=补码最高位取反。
数值表示取值范围:
整数 | 以n=8为例 | |
原码 | 文章图片 |
-127~127 |
反码 | 文章图片 |
-127~127 |
补码 | 文章图片 |
-128~127 |
-128的补码是1000 0000
推荐阅读
- 为什么补码是按位取反加1的()
- 定点数的表示“原码”“补码”“反码”and“移码”
- 【转】补码取反加一与补码减一取反相同的证明
- 补码与符号位取反
- 原码,反码,补码,有符号数和无符号数
- 定点数的运算 —— 原码、补码的除法运算
- 计算机二进制补码为什么是原码取反加一
- 补码为什么要“加一”
- 按位取反~
- 原码,反码,补码的表示范围总结