gpt4 book ai didi

java - Java 中字节的 OR-ing 问题?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:41:47 25 4
gpt4 key购买 nike

假设我在 java 中有以下代码

byte t = (byte) 0b10001000;
byte z = 0b00000000;
z = (byte) (t|z);

你认为输出会是 10001000,但它最终在字符串表示中是 -1111000,- 符号当然是第一个 1,所以它是 11111000。如果我执行相同的代码但最后一位在z 为 1,例如00000001,我执行相同的操作,得到 -1110111 或 11110111。我认为这是由于负符号字节 t 的一些转换问题造成的。有什么办法可以避免这种情况吗?有什么方法可以让 10000000 在 OR 运算中与 01000000 一样工作?

最佳答案

Java 没有无符号类型,所以当您使用二进制符号并设置符号位时,事情不会像您预期的那样进行;-)

要模拟无符号类型,您需要在下一个规模上工作。

关于java - Java 中字节的 OR-ing 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32556870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com