gpt4 book ai didi

java - 为什么这个按位运算不起作用?

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

好吧,这可能真的很愚蠢,但我不明白为什么这不起作用;

    byte temp = (byte)0x80;
System.out.println(temp);
byte holder = (byte)(temp | 0x40);
System.out.println(holder);

产生:

-128

-64

不应按位或按位:

10000000

01000000

产量

11000000

或-192?

最佳答案

0x80代表128,0x40代表64。如果打印0x80 | 64 它将输出 192。

当您转换为字节时,128 变为 -128,因为 128 高于 Byte.MAX_VALUE,即 127。

所以你评估的表达式是 -128 | 64,而您可能期望 128 | 64,并将导致您的输出 -64

关于java - 为什么这个按位运算不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29711421/

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