原码、反码、补码、移码(介绍、相互转换、大小比较) 您所在的位置:网站首页 原码和反码的转换 原码、反码、补码、移码(介绍、相互转换、大小比较)

原码、反码、补码、移码(介绍、相互转换、大小比较)

2024-07-01 02:41| 来源: 网络整理| 查看: 265

目录

原码(Sign-Magnitude)反码(Ones' Complement)补码(Two's Complement)移码(Excess-N)他们之间的相互转换大小比较从老师PPT上抠的经典题目

1.原码(Sign-Magnitude)

方法:原码是最基本的表示法,它用最高位表示符号,其余位表示数值的绝对值。

 2.反码(Ones' Complement)

反码表示法是将原码中的负数符号位不变,其它各位取反。

如果是正数,则反码与补码相同!!!

定点小数举例:x=+0.1001,则[x]原=0.1001,[x]反=0.1001(正数相同)

                        x=-0.1001,则[x]原=1.1001,[x]反=1.0110

定点整数举例:x=+1001,则[x]原=01001,[x]反=01001(正数相同)

                        x=-1001,则[x]原=11001,[x]反=10110

3.补码(Two's Complement)

方法:

正数:与原码一样

负数:反码的基础上最低有效位+1

定点小数举例:x=+0.1001,则[x]原=0.1001,[x]反=0.1001,[x]补=0.1001(正数相同)

                        x=-0.1001,则[x]原=1.1001,[x]反=1.0110,[x]补=1.0111

定点整数举例:x=+1001,则[x]原=01001,[x]反=01001,[x]补=01001(正数相同)

                        x=-1001,则[x]原=11001,[x]反=10110,[x]补=10111

4.移码(Excess-N)//速成版

移码是将补码的所有数值加上一个固定值,然后表示为二进制数的形式。例如,如果选择将补码加上128,则补码为0的数的移码表示为10000000。

速成记法:将移码数值位不变,符号位取反(该用法仅限于计算机组成网络课程)

定点小数举例:

x=+0.1001,则[x]原=0.1001,[x]反=0.1001,[x]补=0.1001(正数相同),[x]移=1.1001

x=-0.1001,则[x]原=1.1001,[x]反=1.0110,[x]补=1.0111,[x]移=0.0111

定点整数举例:

x=+1001,则[x]原=01001,[x]反=01001,[x]补=01001(正数相同),[x]移=11001

x=-1001,则[x]原=11001,[x]反=10110,[x]补=10111,[x]移=00111

5、相互转换

(1)如果是正数,原码、反码、补码都一致

x=+0.1001,则[x]原=0.1001,[x]反=0.1001,[x]补=0.1001(正数相同)

x=+1001,则[x]原=01001,[x]反=01001,[x]补=01001(正数相同

(2)反码符号位、补码符号位、与原码符号位一致,移码符号位与他们三相反

(3)移码符号位取反可得补码

[x]补=01001,则[x]移=11001

[x]补=10111,则[x]移=00111

[x]补=1.0111,则[x]移=0.0111

(4)两次求补码即可得原码

x=-1001,则[x]原=11001,[x]反=10110,[x]补=10111

y=[x]补=10111,则[y]补=11001=[x]原

(5)如果是符号位为负数,则补码最低有效位-1得反码

       [x]补=10111, [x]反=10110

(5)反码由原码推出(参见2反码介绍)

(6)补码由反码推出(参见3补码介绍)

(7)移码由补码推出(参加4移码介绍)

6、大小比较

1、反码之间比较大小的方法

反码的大小比较方法较为简单,只需要比较符号位和数值位的大小即可。若两个数的符号位相同,则比较数值位的大小,大的数更大;若两个数的符号位不同,则正数更大。

例如,+3的反码为00000011,-2的反码为11111101,因为+3和-2的符号位不同,因此00000011更大。先比较红色标出的符号位,符号位一致则比较蓝色标出数值位。

2、补码之间比较大小的方法

        正数:直接按原码比较大小

        负数:转化成反码再比较

2、移码之间比较大小的方法

        转换成补码 相互转换中的(3)移码符号位取反可得补码

       用补码比较

       

7、经典题目

【练】设机器字长为8位,用于表示定点小数,其中已知符号位占1位,数值位7位;若数N=-23/128,求N的原码,反码,补码(用二进制表示)。

【解】先求数N的二进制表示,:

分子23=10111,分母128=2的七次方

N=-0. 0010111

因此,数N的原码,反码,补码分别为:

[×]原=1.0010111

[X]反=1.1101000

[X]补= 1.1101001



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有