【软考路上】——原码、反码、补码、移码

简介: 各种数值在计算机中的表示形式称为机器数,机器数采用二进制数来表示数据,数据的正负号也分别用0和1来表示。为了便于运算,带符号的机器数可采用原码、反码、补码、移码等编码方法。

      各种数值在计算机中的表示形式称为机器数,机器数采用二进制数来表示数据,数据的正负号也分别用0和1来表示。为了便于运算,带符号的机器数可采用原码、反码、补码、移码等编码方法。


      注:以下规则均以机器字长为8(即采用8个二进制位来表示数据)来举例说明


      原码


      ⊙正数:如下图①先写上要表示的数据,②符号位(首位)写上0,③如果有空位则用0补上,如X=22=10110B,则[X]原=00010110;


100.png


      ⊙负数:如下图①先写上要表示的数据,②首位写上1,③如果有空位则用0补上,如X=-27=-11011B,则[X]原=10011011。

101.png


      反码    


      ⊙正数:反码等于原码,如X=10110,则[X]反=[X]原=00010110;


      ⊙负数:如下图,在原码的基础上,④符号位(首位)不变,⑤其他位按位取反(0变成1,1变成0),如X=-11011,则[X]原=10011011,[X]反=11100100。


102.png


      补码     


      ⊙正数:补码等于原码和反码,如X=10110,则[X]补=[X]反=[X]原=00010110;

      ⊙负数:在反码的基础上,⑥让反码加1,如X=-11011,则[X]原=10011011,[X]反=11100100,[X]补=11100101。


103.png

      移码  


      正数和负数的移码,都是在反码的基础上,让反码的符号位取反,即得该数的移码。如X=-11011,则[X]原=10011011,[X]反=11100100,[X]补=11100101,[X]移=01100101。


104.png


      补充:小数的原码、反码、补码、移码的转换  


      原码、反码、补码、移码这几种表示方式之间的转换,基本上只有正数和负数转换的时候有些差别,当遇到小数时,只需要把小数也表示为二进制,转换方式跟正数一样。如X=0.25=0.01,[X]原=0.0100000,[X]反=0.1011111,[X]补=0.1100000,[X]移=1.1100000。


相关文章
|
8月前
|
存储 编译器 C语言
【原码、反码、补码】小白看完都呲大牙
【原码、反码、补码】小白看完都呲大牙
290 1
|
2天前
|
存储
计算机基础(4)——原码、补码、反码
计算机为了区分数值的正负提出了符号位的设定,计算机用最高位存放符号,这个被称为符号位。正数的符号位为0, 负数的符号位为1。 例如,1的二进制表示形式为`0000 0001`,而-1的二进制表示形式为`1000 0001`。在计算机中,一个字节为8个位,最大值为0111 1111,十进制为127。最小值为1000 0000,十进制为-128。因此一个字节的取值范围为-128~127之间。
|
1月前
|
C语言
【C语言】原码、反码、补码详解 -《码上有道 ! 》
在计算机科学中,整数的表示方式有多种,包括原码、反码和补码。这些表示方式主要用于解决整数的二进制表示和计算问题。本文将详细介绍这三种表示方法,并通过示例来说明它们的原理和应用,特别是它们在C语言中的应用。
146 5
|
3月前
让星星⭐月亮告诉你,原码、反码、补码以及为什么要用反码和补码
机器数是数在计算机中的二进制表示,最高位表示符号。真值是机器数对应的实际数值。原码、反码、补码分别是数的不同二进制表示方式,其中补码解决了0的表示问题及简化了计算机的运算设计,使得计算机只需实现加法器即可完成加减运算。
92 2
|
3月前
深入解析计算机科学的基础:原码、反码与补码
深入解析计算机科学的基础:原码、反码与补码
|
7月前
|
程序员
程序员必知:原码、反码、补码和移码详解
程序员必知:原码、反码、补码和移码详解
130 0
【软考学习2】数据表示——原码 反码 补码 移码
【软考学习2】数据表示——原码 反码 补码 移码
149 0
|
8月前
【中级软件设计师】—(针对上午题)原码与反码、补码和移码(十二)
【中级软件设计师】—(针对上午题)原码与反码、补码和移码(十二)
【408计算机组成原理】—原码、反码、补码、移码(六)
【408计算机组成原理】—原码、反码、补码、移码(六)
|
存储
寒假刷题之原码/反码/补码
寒假刷题之原码/反码/补码
88 0