数的编码方式

带符号数有下列编码方式:

**原码:**一个数的正常二进制表示,最高位表示符号,数值0的源码有两种形式

+0 0 000 0000

-0 1 000 0000

反码:

正数的反码即原码,负数的反码是在原码的基础上,除符号位外,其它各位按位取反。数值0的反码也有两种形式:

+0 (0 000 0000)

-0  (1 111 1111)

补码: 正数的补码即原码,负数的补码是在原码的基础上,除符号外,其它各位按位取反,后末位+1,若有进位则产生进位。因此数值0的补码只有一种形式:

+0=-0= 0 000 0000

**移码:**作用浮点数运算的阶码,无论正数负数,都是将该原码的补码的首位(符号位)取反得到移码。

机器字长为n 时,各种码值表示的带符号的取值范围,差别在于0的表示,原码和反码分+0,-0,补码只有一个0,因此可以多表示一个:

理解:使用特殊值,如果字长2

00 ,01 ,10 ,11 则只有4个数字

例如: 若机器字长为8, 请给出45和-45 的原码反码和移码。

转换为二进制

+45 = 0001 1101

-45 = 1001 1101

+45          -45

原码:0010 1101      1010 1101

反码:0010 1101      1101 0010

补码:0010 1101     1101 0011

移码:1010 1101      0101 0011

猜你喜欢

转载自blog.csdn.net/flysh05/article/details/124015724
今日推荐