gpt4 book ai didi

Java - 将 Int 转换为 Byte - 奇怪的结果

转载 作者:行者123 更新时间:2023-11-30 08:21:59 25 4
gpt4 key购买 nike

我正在对 4 字节大的 block 执行按位运算。为此,我使用 ByteBuffer 将 4 字节 block 转换为 4 字节整数。

完成后,我需要将它们转换回字节。使用 ByteBuffer,我正在执行此操作。下面是一些示例代码和数据,以突出我的困惑:

int a = 1610612739; //simulate casting the 4-byte  block 60 00 00 03
ByteBuffer b = ByteBuffer.allocate(4);
b.putInt(a);
byte[] b1 = (b.array());

现在,在这段代码之后,我希望 b1 包含以下内容:

b1[0]: 60
b1[1]: 00
b1[2]: 00
b1[3]: 03

但事实并非如此。相反,我得到

b2[0]: 96
b2[1]: 0
b2[2]: 0
b2[3]: 3

我的二进制样本整数应该是::

0110 0000 0000 0000 0000 0000 0000 0011 其中最左边的位是符号。

96 00 00 03 的十进制形式是 2,516,582,403,这超出了 Java 的 32 位 int 范围。

有人知道这是怎么回事吗?

最佳答案

问题是,您认为它应该以十六进制 显示,但它以十进制 显示。就是这样。

关于Java - 将 Int 转换为 Byte - 奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24717534/

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