关于为什么10000000可以表示-128

对于这个问题相信很多朋友学习计算机数补码表示的时候都遇到过,这个问题的解释我通过查找资料发现了两种比较让我容易理解的答案.

①:补码即同余,八位二进制可以表示0-255,共256个数,故模为256。现需表示一部分负数,所以需要占用一部分数。需要表示的数可以以256为模取余,按余数相同分类,例如-1与255同为余255类,0与256同为余0类。用同类的正数来表示同类的负数,这就是取补码的本质。可知 -128与128同为余128类,1000 0000为128,所以可以用来表示-128。

(参考知乎用户的回答,原文链接:https://www.zhihu.com/question/28685048)

②:计算机计数系统分为两种:二进制补码计数和余码计数。
其中补码技术模式的计数原理为:若计正数,所有计数位清0后开始正向计数,直到所有位中,只有一位为0,其余位都为1时停止计数。若计负数,所有位置1后开始反向计数,直到所有位中,只有一位为0,其余位都为0时停止计数。

则由上述可知,若要计负数时从1111 1111开始计数直到计到1000 0000时停止计数,此时表示的数为128,故其表示-128。 若计正数,从0000 0000 开始计数,计到0111 1111时停止计数,此时可以表示的最大正数为+127。所以八位二进制数可以表示的范围为+127~-128。
(参考《计算机科学概论》)

猜你喜欢

转载自blog.csdn.net/qq_42680785/article/details/88137141
今日推荐