Java中负整数的二进制表示
请帮我了解负整数的二进制表示形式。
例如,我们有5。5的二进制表示是00000000.00000000.00000000.00000101
。
而且据我了解,-5的二进制表示应该像10000000.00000000.00000000.00000101
。
但是输出是11111111.11111111.11111111.11111011
。
我有2个问题:
1)为什么这里有这么1
多位。
2)我真正无法理解的是最后3位011
。看起来像3
。即使是+1或-1这将是100
或010
谢谢
-
您对这些负数应该是什么样的理解是有缺陷的。Java对负数使用二进制补码,而基本规则是取正数,将所有位取反然后加1。那给你带来负面影响。
因此,正如您所说的,五个是:
0000...00000101
反转可为您提供:
1111...11111010
然后加一个给出:
1111...11111011
您
显示的位模式-5
称为符号/幅度,您只需翻转最左边的位就可以取反数字。在C实现中,这是三种可能性(a)之一,但Java仅使用二进制补码(对于其负整数)。
(a)但是请记住,C和C ++当前都在努力删除其他两种编码类型,并且只允许二进制补码。
-
如何在java中获得整数的0填充二进制表示?
2022-05-26 关注 0 浏览13 1答案
-
如何在Java中获取整数的0填充二进制表示形式?
2021-02-02 关注 0 浏览99 1答案
-
Python:在整数的二进制表示形式中找到最长的二进制间隙
2021-01-29 关注 0 浏览70 1答案
-
从整数转换为其二进制表示
2022-01-03 关注 0 浏览83 1答案
-
用二进制补码表示负整数
2021-01-29 关注 0 浏览106 1答案
-
Java二进制补码二进制到整数
2021-01-30 关注 0 浏览85 1答案
-
以二进制表示形式计数1
2021-01-31 关注 0 浏览70 1答案
-
下列各无符号十进制整数中,能用八位二进制表示的是( )。
2022-05-13 关注 0 浏览12 1答案
-
Python中float的二进制表示(位不是十六进制)
2021-01-29 关注 0 浏览88 1答案
-
小数值1.5625的二进制表示是?
2022-03-02 关注 0 浏览21 1答案