gpt4 book ai didi

java - Java 字节数组中的无符号字节

转载 作者:行者123 更新时间:2023-12-01 06:49:29 25 4
gpt4 key购买 nike

这似乎是一个简单的问题,但我很困惑。

byte[] bArray = new byte[]{(byte) (0x80 & 0xff)};
System.out.println(bArray[0]);

我的输出是-128。为什么?我怎样才能重写它以使字节数组包含128?我认为 0xff 使其未签名。感谢您的帮助!

最佳答案

I thought that the 0xff made it unsigned.

嗯,确实如此 - 它将其提升为 int,并仅保留最后 8 位。

但是,您随后会将结果转换回字节,而Java 中的字节总是有符号的。 (这很烦人,但事情就是这样。)所以你不妨这样写:

byte[] bArray = { (byte) 0x80 };

结果将完全相同。

您正在存储要存储的位模式(10000000),因此如果您将其传输到其他地方,则无需担心......这只是当您将其视为字节时 在 Java 中这很烦人。

关于java - Java 字节数组中的无符号字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44833584/

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