怎么用计算机计算补码,计算机为什么用补码来计算

编程入门 行业动态 更新时间:2024-10-27 10:23:46

怎么用计算机计算<a href=https://www.elefans.com/category/jswz/34/1763500.html style=补码,计算机为什么用补码来计算"/>

怎么用计算机计算补码,计算机为什么用补码来计算

计算机中数字都是用二进制来表示的,有三种编码方式:原码、反码、补码,而计算中用到最多的就是补码,原因是什么呢?让我们来看一下这三种方式的具体表示吧

原码

原码的表达很简单,最高位为符号位,0表示正数,1表示负数。其它位即为绝对值的二进制表示,非常直观。但是使用原码存在哪些问题呢?

0的表示存在二义性

如果按照上述的表示方式,那么0就可以分为+0和-0两种表示。即以8位字长来说 +0的原码为00000000,-0的原码为10000000,这两种表示都对应0,这样在计算机判断0时就会带来一些麻烦。

进行运算时符号需单独处理

例如要计算一个 8 + (-5),就要先计算最后的结果的符号,那么需要比较两个数的绝对值,在根据两个数的符号来确定。

反码

反码只是原码与补码的一个中间结果,它并没有什么实际用途。负数的反码为在原码的基础上,除符号位均取反。例如-8的原码为10001000,而反码则为111101111

补码

补码是有反码+1得到的,那么这个补码有什么神奇的地方呢?我们先要考虑一个概念:取模运算。一般来说,取模称之为mod,在java中 用%号来表示。例如 5 %2 = 1。

现在有一个问题,一周中星期四的前三天是星期几?我们可以把一周7天用1-7来表示,那么星期四的前三天可以表示为 4 -3 = 1 ,那么星期四之后四天还是星期一,那么我们可以表示成 4+4 = 1,为什么有4+4 = 1,因为4+4 = 8,大于7之后又是一个新的循环,所以实际上应该写成 (4+4)%7 = 1,所以可以看到-3和4 是补数。

所以可以看出,补码可以简化加减法运算,而符号位也可以直接参与运算,不必单独计算符号位。而至于0的表示则只有00000000一种,自然这种编码方式是最优解了。

更多推荐

怎么用计算机计算补码,计算机为什么用补码来计算

本文发布于:2024-03-08 10:46:34,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1720653.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:补码   计算机   什么用

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!