目录
0、相关文章
数的机器码表示(原码,反码,补码,移码)(阅读量2w,1赞)
原码:Original code
反码:Inverse code(Inverse:反选;反转;逆函数;反向)
补码:Complement code
移码:
1、原码
二进制也有正负之分,正负号由最高位(即符号位)来表示,“0”表示正号,“1”表示负号。
符号位为0表示正数,为1表示负数,数值部分用二进制数的绝对值表示的方法称为原码表示法,通常用[X]原表示X的原码。
例如,要表示+59和-59的原码。假设机器数的位数8位(即机器的字长为8位),最高位是符号位,其余7位是数值位,那么,+59和-59的原码分别表示为:
[+59]原=00111011 [-59]原=10111011
写成一般式则为:
正数的原码 [X]原=X (0<X<2n-1)
负数的原码 [X]原=2n-1-X (-2n-1<X<0)
注意:0的原码有两个值,有“正零”和“负零”之分,机器遇到这两种情况都当作0处理。
[+0]原=00000000 [-0]原=10000000
原码的表示方法简单易懂,与真值转换方便,但在进行加减法运算时,符号位不能直接参加运算,而是要分别计算符号位和数值位。当两数相加时,如果是同号,则数值相加;如果是异号,则要进行减法运算。而在进行减法运算时,还要比较绝对值的大小,然后用大数减去小数,最后还要给运算结果选择恰当的符号。
为了解决这些问题,人们引进了数的补码表示法。
2、补码
2.1、补码的定义:
分为两种情况,如下所示:n表示x的位数
2.2、计算:
2.2.1、x = 13时:
2.2.2、x = -13时:
2.2.3、例子三:
2.2.4、例子四:
2.3、补码的意义
3、反码
3.1、引入反码的意义:
找出原码和补码之间的规律,消除转换过程中的减法。
3.2、反码的定义:
3.3、对比反码和补码的定义:
3.4、计算
3.4.1、例子一:
3.4.2、例子二:
3.4.3、原码、补码、反码对比:
规律:
3.4.4、例子四:
4、总结
先求反码,再求补码,然后进行运算。
5、小数的补码
5.1、定义:
5.2、例子:
5.2.1、例子一: