首页 > 其他分享 >【计算机组成原理】详细解读带符号整数在计算机中的运算

【计算机组成原理】详细解读带符号整数在计算机中的运算

时间:2024-09-12 23:54:19浏览次数:12  
标签:0000 计算机 符号 带符号 补码 整数 原码 运算

有符号整数的运算

封面

导读

大家好,很高兴又和大家见面啦!!!

经过前面的介绍,我们已经初步认识了有符号整数的三种表示形式:

  • 原码——用机器数的最高位表示符号,其余位表示数值。
    • 符号位为0,表示正数
    • 符号位为1,表示负数
    • n n n 位机器数对应的取值范围: − ( 2 n − 1 − 1 ) ~ 2 n − 1 − 1 -(2^{n-1}-1)~2^{n-1}-1 −(2n−1−1)~2n−1−1
  • 反码——原码符号位不变,数值位按位取反。
    • 反码常用于数码变换的中间表示形式
    • n n n 位机器数对应的取值范围: − ( 2 n − 1 − 1 ) ~ 2 n − 1 − 1 -(2^{n-1}-1)~2^{n-1}-1 −(2n−1−1)~2n−1−1
  • 补码——反码+1
    • 有符号整数在计算机中的存储形式
    • 补码的符号位参与运算
    • n n n 位机器数对应的取值范围: − 2 n − 1 ~ 2 n − 1 − 1 -2^{n-1}~2^{n-1}-1 −2n−1~2n−1−1

在接下来的内容中,我们将会进一步的深入探讨原、反、补这三种表现形式的内容。今天我们将会从最简单的有符号整数的运算开始介绍。

在前面我们有提到过,有符号整数在通过原码进行运算时,会存在一些问题:

  • 两个不同符号的加法运算(或同符号的减法运算),需要完成三步运算:
    • 比较两个值的绝对值大小
    • 用绝对值大的数减去绝对值小的数
    • 给运算结果选择合适的符号
  • 两个同符号的加法运算(或不同符号的减法运算),需要完成三步运算:
    • 减法运算改为加法运算,即加上被减数的相反数
    • 从右到左,数值位逐位相加,符号位不参与运算
    • 符号位取左操作数的符号

可以看到,同样是加减法运算,仅仅因为加减法的对象不同,其运算的方式却有差异,为了提高运算的效率,降低硬件的开发成本,于是便有了补码,那么在有符号的整数中,其补码形式又是如何进行运算的呢?下面我们就一起来探讨一下补码的加减运算;

一、补码的优势

在原码的运算中,由于机器数的最高位表示的是符号位,并且符号位不参与运算,因此实际在进行运算的只有除符号位以外的数值位,而运算结果的符号,还需要根据结果进行判断,这就导致其运算过程变的及其复杂;

但是在补码的运算中符号位要参与运算,此时我们就不需要再去考虑结果的符号,正常的完成运算后,运算结果的符号也就同时确定了下来,这样就大大降低了运算的难度。

而且真值0的原码表示有 [ + 0 ] 原 = 0 , 0000 [+0]_原=0,0000 [+0]原​=0,0000 和 [ − 0 ] 原 = 1 , 0000 [-0]_原=1,0000 [−0]原​=1,0000 两种形式,而在补码中,真值0的补码只有 [ 0 ] 补 = 0 , 0000 [0]_补=0,0000 [0]补​=0,0000 一种形式,并且补码相比于原码还能够多表示一位负数 − 2 n − 1 -2^{n-1} −2n−1 。

从这几点来看,有符号整数以补码的形式进行存储,并通过补码运算的优势还是很明显的。

二、补码的加法运算

有符号整数的补码加法规则很简单,从右到左,依次相加,逢二进一,如下所示:

补码的加法
可以看到,整个过程并不复杂,并且这个过程有细心的朋友就会发现,除了后续的补码转换成原码之外,整个加法运算的过程是和无符号整数的加法是一样的。那么这个补码的运算是否和无符号整数的运算有联系呢?在后面的内容中我们会继续介绍,大家记得关注哦!!!

结语

今天的内容到这里就全部结束了,在下一篇内容中我们将介绍《移码》的相关内容,大家记得关注哦!如果大家喜欢博主的内容,可以点赞、收藏加评论支持一下博主,当然也可以将博主的内容转发给你身边需要的朋友。最后感谢各位朋友的支持,咱们下一篇再见!!!

标签:0000,计算机,符号,带符号,补码,整数,原码,运算
From: https://blog.csdn.net/2301_79458548/article/details/141981236

相关文章