“原码、反码、补码、移码 总结”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
(建立内容为“== 转换规则 == === 原码 === 最高位1表示负数,最高位0表示正数,其余n-1位表示数值的绝对值 === 反码 === 正数的反码与原码…”的新页面)
 
第16行: 第16行:
 
=== 移码 ===
 
=== 移码 ===
 
将补码的符号位取反
 
将补码的符号位取反
 +
 +
 +
== ±0的表示 ==
 +
 +
=== 0在补码和移码中有唯一的表示 ===
 +
±0的补码:0000 0000
 +
 +
±0的移码:1000 0000
 +
 +
=== 计算机采用补码,其符号位和数值位均参与计算且没有减法,减法转换为加法进行计算 ===
 +
 +
 +
== 表示范围 ==
 +
 +
=== 原码、反码 ===
 +
-(2<sup>n-1</sup>-1) ~ +(2<sup>n-1</sup>-1)
 +
 +
=== 补码、移码 ===
 +
-2<sup>n-1</sup> ~ +(2<sup>n-1</sup>-1)
 +
 +
=== 8位二进制下 ===
 +
补码和移码可以表示 -128;
 +
 +
-128的补码是 1 000 0000,移码是 0 000 0000

2022年9月2日 (五) 06:34的版本

转换规则

原码

最高位1表示负数,最高位0表示正数,其余n-1位表示数值的绝对值

反码

正数的反码与原码相同

负数的反码则在原码基础上除符号位外按位取反

补码

正数的补码、反码和原码相同

负数的补码则是其反码基础上加1

移码

将补码的符号位取反


±0的表示

0在补码和移码中有唯一的表示

±0的补码:0000 0000

±0的移码:1000 0000

计算机采用补码,其符号位和数值位均参与计算且没有减法,减法转换为加法进行计算

表示范围

原码、反码

-(2n-1-1) ~ +(2n-1-1)

补码、移码

-2n-1 ~ +(2n-1-1)

8位二进制下

补码和移码可以表示 -128;

-128的补码是 1 000 0000,移码是 0 000 0000