gpt4 book ai didi

Java FileInputStream 将 3-4 个字节放入字节数组的相同索引中?

转载 作者:行者123 更新时间:2023-11-29 04:45:38 25 4
gpt4 key购买 nike

我不知道这是一个错误还是我在这里遗漏了什么。我正在尝试获取文件的确切字节,以便我可以处理一些文件。

所以我有一个 byte[1024] 数组来获取它的前 1024 个字节,一个 char[1024] 数组,我正在对每个字节执行 Integer.toBinaryString 以查看它的值

但在某些位置,不是 8 位字节,而是像 index[20]=11111111111111111111111111111111 这样的值索引[21]=1111111111111111111111111111110

一个字节怎么可能是32位的?

在这种情况下,它应该是一个 UTF-16 BOM,根据我的测试,它应该是 255 254 ,所以每个索引的最后 8 个应该在那里

提前感谢您的帮助

最佳答案

bytes 和 ints 都是用 Java 签名的。

负值存储为二进制补码。

所以 -1 字节表示为 '1111 1111'。这将转换为 -1 int,表示为 '1111 1111 1111 1111 1111 1111 1111 1111',这就是您所看到的。

如果你有一个字节b并希望查看其精确的逐位表示,您需要做 ((int) b) & 0xFF .

这会将您的字节转换为 int,并将该新 int 的第一个字节“上方”的所有位重置为零。

关于Java FileInputStream 将 3-4 个字节放入字节数组的相同索引中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37318181/

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