补码 的运算

补码 的运算

 补码的算术运算
补码运算要注意的问题:
1.补码运算时,其符号位与数值部分一起参加运算。
  2.补码的符号位相加后,如果有进位出现,要把这个进位舍去(自然丢失)。
    3.用补码运算,其运算结果亦为补码。在转换为真值时,若符号位为0,数位不变;若符号位为1,应将结果求补才是其真值。
    [例3]  已知X = + 1101 , Y = + 0110 , 用补码计算Z = X-Y。
      解: [X]补 = 01101,[-Y]补 = 11010,则[Z]补 =[X]补+[-Y]补 = 01101+11010 
            = 100111 , 其真值为Z = + 0111。
    [例4]  已知X = + 0110 , Y = + 1101 , 用补码计算Z = X-Y。
      解: [X]补 = 00110,[-Y]补 = 10011,则[Z]补 =[X]补+[-Y]补 = 00110 + 10011
            = 11001 , 其真值为Z = - 0111。
4  
溢出及补码溢出的判断
无论采用何种机器数,只要运算的结果大于数值设备所能表示数的范围,就会产生溢出。  溢出现象应当作一种故障来处理,因为它使结果数发生错误。异号两数相加时,实际是两数的绝对值相减,不可能产生溢出,但有可能出现正常进位;同号两数相加时,实际上是两数的绝对值相加,既可能产生溢出,也可能出现正常进位。
由于补码运算存在符号位进位自然丢失而运算结果正确的问题,因此,应区分补码的溢出与正常进位。
[例5] 某数字设备用五位二进制表示数,计算  
     (1)9+3  (2)-9-3  (3)9+12  (4)-9-12
  解:(1)[+9]补+[+3]补= 01001+ 00011 = 01100 = +12 正确;
         (2)[-9]补+[-3]补= 10111+ 11101 = 110100 = 10100(符号位进位自然丢失),            其真值为-1100 = -12正确;
         (3)[+9]补+[12]补= 01001 + 01100 = 10101 其真值为-1011 =-11错误,产生了溢出
         (4)[-9]补+[-12]补 = 10111+10100 = 101011 其真值为01011= +11 错误,产生了溢出
(1)、(2)两题结果均正确,查其最高位和次高位的进位位,不是均无进位产生,就是均产生进位;(3)、(4)两题结果均错误,查其最高位和次高位的进位位,只有一位产生了进位。此即为判断机器是正常进位还是溢出的基本依据,在微型机中可用异或电路来实现上述的判断。

 


 

负数的减法运算也要设法化为加法来做,其所以使用这种方法而不使用直接减法,是因为它

可以和常规的加法运算使用同一加法器电路,从而简化了计算机的设计。

  数用补码表示时,减法运算的公式为

[]=[]-[]=[]+[-]
(2.18)

  只要证明[-]=-[],上式即得证。现证明如下:

   ∵       []=[]+[]   (mod 2)

   ∴        []补 =[]-[]           (2.19a)

   ∵       []=[+(-)]=[]+[-]

   ∴       [-] =[]-[]            (2.19b)

将式(2.19a)(2.19b)相加,得

      [-]+[]=[]+[]-[]-[x]

              =[]-[]-[]

              =[]-[]-[]=0

   故
[-]=-[]
(mod 2)
(2.20)

  从[][-]的法则是:[]包括符号位“求反且最末位加1,即可得到

[-]写成运算表达式,则为

[-]=﹁[]+2-n
(2.21)

  其中符号﹁表示对[y]作包括符号位在内的求反操作,2-n表示最末位的1

[10] 已知1=-0.1110,2=+0.1101,求:[1],[-1],[2],[-2]

[解:]

   [1]=1.0010

  [-1]=﹁[1]+2-4=0.1101+0.0001=0.1110

   [2]=0.1101

  [-2]=﹁[2]+2-4=1.0010+0.0001=1.0011

[11] =+0.1101,=+0.0110,求y。

[解:]

              []=0.1101

              [y]=0.0110, [-]=1.1010

[]     0.1101

+[-]    1.1010 

[]   10.0111

所以               =+0.0111

 

 

 

 

 

  • 22
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值