【发布时间】:2021-09-23 20:39:51
【问题描述】:
抱歉,如果我的问题是基本问题或与其他问题重复。无论如何,我正在尝试执行二进制补码来更改数字的符号并检查 java 中的结果,但结果与我手动计算的结果不同。
例如:
二进制的 8 是 00001000
执行 2 的补码后的二进制 -8 应该是 11111000
但是当我使用 Integer.parseInt("11111000",2) 而不是 -8 时,我得到 248。
我是否误解了 2 的补码概念,或者 Java 中有什么我不知道的东西。
你能帮帮我吗?
【问题讨论】:
-
should be 11111000- 没有。打印出来,你自己看看。 -
那是 -8 作为二进制的 byte,当然。对于
int,在开头再添加 24 个 1。 -
看看 BigInteger ;-)
标签: java binary bit-manipulation bitwise-operators twos-complement