原码反码补码移码转换详解

下面都以8位为例,说明问题即可。

一、原码(-127—127):

                原码求法:有符号数的二进制表示。

                例如:4 = 0000 0100(原码)

                          -4 = 1000 0100(原码)

                0有两种表示:0000 0000和1000 0000

二、反码(-127—127):

                负数反码求法:在原码基础上,符号位不变,其余各位取反;

                正数反码与原码相同;

                 例如:4 = 0000 0100(原码)= 0000 0100(反码)

                           -4 = 1000 0100(原码)= 1111 1011(反码)

                 0有两种表示:0000 0000和1000 0000

三、补码(-128—127):

                 负数补码求法:在反码基础上,末尾加一;

                 正数补码与原码相同;

                 例如:4 = 0000 0100(原码)= 0000 0100(反码)= 0000 0100(补码)

                           -4 = 1000 0100(原码)= 1111 1011(反码)= 1111 1100(补码)

                 0只有一种表示:0000 0000

                 -128表示为:      1000 0000

四、移码(-126——127):

                 移码求法:补码的符号位取反;

                 例如:4 = 1000 0100(移码)

                           -4 = 0000 0100(移码)

                 1000 0000 和 1111 1111 保留用来表示特殊值和无穷大;


你可能感兴趣的:(杂谈)