ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

原码、反码、补码、移码相互转换及其运算

2022-02-19 19:32:03  阅读:1426  来源: 互联网

标签:10 反码 补码 37 移码 2n 原码


原码、反码、补码和移码的相互转换

 

  

一、机器数

  连同符号位一起数字化的数。

  1.特点
    ①符号数字化
    ②数值的大小受机器字长的限制。每个机器数所占的二进制位数受限于机器硬件规模,与机器字长有关。超过机器字长的数位要被舍去。

  2.真值:机器数中除“+”“-”符号外,其余部分表示的值。

  3.分类

    ①无符号数:机器字长的所有二进制位均表示数值。

    ②带符号数:数值部分和符号均为二进制代码表示,通常符号位位于最高位。符号位“1”表示“-”,“0”表示“+”。

    

 

 二、原码

  原码是保持原有的数值部分的形式不变。

     整数部分:  

      当0≤X<2n,[X]=X                             [10011001]= 010011001

      当-2n<X≤0,[X]=2n-X=2n+|X|       [-10011001]= 110011001

    小数部分:

      当0 ≤ X<1,[X]=X                           [0.10011001]原 = 0.10011001

      当-1<X ≤ 0,[X]=1+|X|                   [-0.10011001]= 1.110011001

   ①将[X]的符号取反即可得到[-X]

     【例题】设机器字长为8位,写出+37和-37的二进制。

      解析:37除二取余法得到的二进制数为100101,“+”为1,“-”为0,符号位在最高位

        [+37]=(+37)10=(+100101)2=(+00100101)2=00100101

        [-37]=(-37)10=(-100101)2=(-00100101)2=10100101

   ②原码中0的表示不唯一

    整数原码:[+0]=00...0     [-0]=10...0 

    小数原码:[+0]=0.00...0  [-0]=1.00...0 

  ③原码的移位规则:符号位不变,数值部分左移或右移,移出的空位归0。左移是乘法,右移是除法。移动n位是乘或除2n

   【例子】 [0.0110000]=0.0110000

        [0.0110000]÷2=0.0011000

        [0.0110000]×2=0.1100000

三、反码

  ①反码与原码的关系

    当X≥0,[X]=[X]

    当X<0,[X]=[X]的位取反(符号位不变)

    【例子】

      [+0.1001100]=0.1001100  [-0.1001100]=1.0110011

      [+1001100]=01001100   [-1001100]=10110011

  ②反码中0的表示不唯一

    [+0]=00...0  [-0]=11...1

四、补码 

  补码的目的是使得减法也可以按照加法的方式来计算(加减法);同时,补码可以将数的符号位和数值域采用统一方式处理。

 

    模(mod)的概念:对于某一确定的模,某数减去一个数,可以用加上那个数的负数的补数来替代。

    当X ≥ 0,[X]=(M+X)mod M=X,正数的补数等于其本身。

    当X<0,[X]=(M+X)mod M=M-|X|,负数的补数等于模与该数绝对值之差。

    【例子】 (5-2)mod 10=(5+8)mod 10=3,所以当模为10时,-2的补数为8。

  ①补码与原码、反码的关系

    当X ≥ 0,[X]=[X]=[X]

    当X<0,[X]=[X]+1

    【例子】机器字长为8,求+37和-37的原码、反码、补码

        [+37]=[+37]=[+37]=00100101

        [-37]=10100101

        [-37]=11011010

        [-37]=11011011

  ②补码中0的表示是唯一的

    [+0]=00000000  [-0]=00000000

  ③补码的表数范围比原码大

五、移码

  移码也称为增码、余码,主要用于表示浮点数的阶码,因此一般表示整数。

    纯整数移码:[X]=2n+X  -2n≤X<2n

    纯小数移码:[X]=1+X  -1≤X<1

  ①移码与补码的关系:整数补码的数值部分不变,符号取反即得整数移码。反之亦然。

    当X≥0,[X]=[X]+2n

    当X<0,[X]=[X]-2n

    【例1】

      [+1101010] = 01101010

      [+1101010] = 11101010

      [-1101010] = 10010110

      [-1101010] = 11101010

     【例2】在字长为8位的机器中,[X]=27+X

      若X=+1100101 ,则[X]=27+1100101=10000000+1100101=11100101

      若X=-1100101 ,则[X]=27+(-1100101)=10000000-1100101=00011011

    【例3】求+12和-3的8位移127码的二进制编码形式

      (+12)10=1100,[+12]移127码=127+12=(139)10=(1111111+1100)2=(10001011)2

      (-3)10=-11,[-3]移127码=127-3=(124)10=(1111111-11)2=(01111100)2

  ②移码中0的表示是唯一的

    纯整数:[+0]=[-0]=10000000

  ③移码的表数范围与补码一致

 

      

 

标签:10,反码,补码,37,移码,2n,原码
来源: https://www.cnblogs.com/jingchi/p/15913328.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有