gpt4 book ai didi

java - 如何将二进制文件拆分为 4 个字节的部分?

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

我有一个包含不同字符的 char,我想将这些字符的二进制值打印成两个 4 字节的部分。我在开头添加了一个 1,这样它们每个都是 4 个。

    System.out.println(1 + Integer.toString(mychar[i],2));

我正在使用 for 循环遍历不同的字符并创建一个表。通过这样做,我可以获得二进制值加一个。但我不知道如何将它分成两个 4 字节。

让我们假设 mychar[i] 持有字符串 bryan。输出应如下所示。

 b    1110 0010 r    1111 0010 y    1111 1001 a    1110 0001 n    1110 1110 

最佳答案

我个人最喜欢在转换为二进制时对小数字(即字节、短整数等)进行零填充:

String binaryRep = Integer.toBinaryString( 0x100 | mychar[i] & 0xff ).substring(1);
  • & 确保从 mychar[i]
  • 中获取不超过 8 位
  • 0x100 | 部分设置第 9 位。这意味着最右边 8 位中的所有零都将在结果中表示,结果正好是 9 个字符长。
  • 然后从 1 中取出子串确保我们只取出 8。

当然,上面假设一个字符适合 8 位。如果你尝试一个中文或阿拉伯字符,它基本上只会给你最右边的 8 位。

无论使用何种方法生成 8 个零填充位,都需要在中间添加空格。对于我上面的方法,我们可以做这样的修改:

public static String eightBitCharToBinary( char c ) {

String charAsNineBits = Integer.toBinaryString( 0x100 | c & 0xff );
return charAsNineBits.substring(1,5) + " " + charAsNineBits.substring(5,9);

}

它与上面的功能相同,但不是只取一个子字符串,而是取两个子字符串并在中间放置一个空格。

关于java - 如何将二进制文件拆分为 4 个字节的部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33586948/

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