gpt4 book ai didi

Java - 写入int的第一个字节

转载 作者:行者123 更新时间:2023-12-01 15:30:23 33 4
gpt4 key购买 nike

好吧,我已经搜索了又搜索了,但没有任何效果......我有这个int数组,每个int只占用低位字节。例如,我有

data[0] = Ox52
data[1] = Oxe4
data[2] = Ox18
data[3] = Oxcb

我希望标准输出恰好包含这些字节(或者换句话说,如果我将其写入文件中并使用十六进制编辑器检查该文件,我应该看到):

52e418cb

我怎样才能做到这一点?

感谢您的帮助

最佳答案

正确的方法是根据所需位置移动字节,然后使用 OR 运算符将它们拼接在一起。但是,在移位之前,您还应该对字节的低 8 位执行位掩码。这是必需的,因为字节首先被转换为 int(在移位完成之前)。这没什么大不了的,但是当最高位为 1(即:该字节为负数)时,您的整数也将变为负数,这会导致所有前导位都设置为 1。

所以:

(byte) 10000000 = (int) 11111111 11111111 11111111 10000000

将此负 int 值与 OR 运算符一起使用将导致错误的结果。所以,工作线是这样的:

((data[0] & 0xFF) << 24) | ((data[1] & 0xFF) << 16) | ((data[2] & 0xFF) << 8) | (data[3] & 0xFF)

关于Java - 写入int的第一个字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9592112/

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