补码

发布时间:2022-07-01 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了补码脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

计算机采用二进制计数,有符号整数的表示、存储和计算就是一个要解决的问题;

在这个问题上,计算机设计者选择了补码表示法。


 

 在这之前,先看下另一种表示方法,符号及值表示法。

一个 n 位字可以表示从 0 ~ 2n-1 共 2n 个可能的值,如表 无符号数;表示负数的一种方法是用它的最高位表示符号,通常符号位为 0 表示正数,符号位为 1 表示负数;

有符号数的值可被表示为从 (-1)s×M,这里 s 为数的符号位的值,M 为其数值部分;则其表示范围为 -(2n-1-1) ~ +(2n-1-1),一个8位有符号数可以表示为 -127 ~ +127,如表 原码

但有个问题, 0000 0000 = +0、1000 0000 = -0,且算术运算中需要使用减法器;因此计算机设计者选择了只需要加法器就可以进行包含负数的运算,且能解决+0、-0问题的补码表示系统。


 

 补码表示法,涉及到补数和模的概念;

举例,8位字长,10 - 2 = 10 + (-2) = (10 + (256-2)) mod 256 = (10 + 254) mod 256 ;所以 -2 和 +254 效果是一样的,那么 -2 就可以用 1111 1110 来存储,用加法器算术运算。

这里猜测下为什么是 -128。256个数,正负各半,我们知道 0 既不是正数又不是负数,那么还剩 2 个数要怎么安排? 0000 0000、1000 0000;没说的,0000 0000 肯定表示 0

现在数的表示范围已经达到了 -127 ~ +127,1000 0000 最高位是1, 划分到负数里,只能是 -128;其实对模=256来说,-128 运算等价于 +128。


 

 取反+1

例如, -N 要存放到计算机,负数先进行求补运算,28 - N = 1 0000 00002 - N = 1 0000 00002 - 1 - N + 1 = 1111 11112 - N + 1

1111 11112 - N 很容易计算,非常简单,计算机易实现,这也是补码的魅力;


 

补码


 

 


 

脚本宝典总结

以上是脚本宝典为你收集整理的补码全部内容,希望文章能够帮你解决补码所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: