Binary 如何用二进制表示超出范围的数字?

Binary 如何用二进制表示超出范围的数字?,binary,Binary,在我从维基百科读到的2篇补充文章中,范围是从-128到127。因此,我想知道如何表示128/2补码,因为它超出了上述范围。您使用了更多位 从-128到+127的范围是256个唯一值,即8位。如果你需要一个更大的范围,你需要更多的位 没有什么限制2s补码为8位值。例如,16位2s补码的范围为-32768到+32767。如果只有8位可供使用,则不能使用。除非你愿意同时对待1000 0000−128和+128。8位为您提供范围:[-2^7,2^7-1]=[-128127] 通常,使用n位的2的补码可以

在我从维基百科读到的2篇补充文章中,范围是从-128到127。因此,我想知道如何表示128/2补码,因为它超出了上述范围。

您使用了更多位

从-128到+127的范围是256个唯一值,即8位。如果你需要一个更大的范围,你需要更多的位


没有什么限制2s补码为8位值。例如,16位2s补码的范围为-32768到+32767。

如果只有8位可供使用,则不能使用。除非你愿意同时对待
1000 0000
−128和+128。

8位为您提供范围:
[-2^7,2^7-1]=[-128127]

通常,使用n位的2的补码可以表示范围内的数字:

-2^(n-1) to +2^(n-1)-1

(用8个字节表示)@tsubasa-你似乎被“2s补码”==“8位”的概念所束缚,但事实并非如此。你坚持使用8位吗?但我听说了环绕术语?它是否在环绕运算中使用了更多的位?2-补码:1+127=128中是否仍允许使用它?如果设置了2s补码的最左边的位,则它是一个负数。从本质上讲,可以用一定数量的位表示的数字中有一半是负数,另一半是非负数。“环绕”对于任何大小的2s补码二进制数都是对称的。实际上,2s补码中均值-1上的所有位都是对称的-127等于10000000是的,你说得对。很久没有考虑过2s补码了,但是快速浏览一下维基百科页面就会发现你是对的−128和+128”:你如何区分这两者取决于上下文。如果你在加法,你可能希望允许+128作为最大值,反之,如果你在减法/减法,你可能希望允许-128作为最小值。我没有说这一定是个好主意,只是一种可能性。