原码、反码、补码、移码

原码

二进制位表示,第一位是符号位为1时负数。
如:[3]=原[0000 0011],[-3]=原[1000 0011]

反码

正数:和原码一样
负数:符号位不变,其余位置取反
如[-3]=反[1111 1100]

反码是数值存储的一种,多应用于系统环境设置,如linux平台的目录和文件的默认权限的设置umask,就是使用反码原理。

补码

正数:和原码一样
负数:符号位不变,其余位置取反,对最后一位+1
如:[-3]=原[1000 0011]=反[1111 1100]=补[1111 1101]

1.使符号位能与有效值部分一起参加运算,从而简化运算规则.
2.使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计 所有这些转换都是在计算机的最底层进行的,而在我们使用的汇编、C等其他高级语言中使用的都是原码。

移码

算出补码的基础上,对符号位取反
[-3]=原[1000 0011]=反[1111 1100]=补[1111 1101]=移[0111 1101]

移码(又叫增码)是符号位取反的补码,一般用指数的移码减去1来做浮点数的阶码,引入的目的是为了保证浮点数的机器零为全0。

链接为什么使用反码、补码

你可能感兴趣的:(原码、反码、补码、移码)