gpt4 book ai didi

java - java中如何将十六进制字符串更改为4字节?

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

我正在做一个关于这个的作业。

例如:我有一条消息(字符串),长度为十进制的 302,十六进制的 12e。

String message = "THE MESSAGE BODY";
int lengthOfMessage = number.length(); // 302
String lengthOfMessageInHex = Integer.toHexString(lengthOfMessage); // 12e

现在,我需要将 lengthOfMessageInHex 从“12e”更改为“0000012e”。

lengthOfMessageInHex = ("00000000" + lengthOfMessageInHex)
.substring(lengthOfMessageInHex.length()); // 0000012e

现在我想将 00 00 01 2e 存储到一个新字节[4]。

我该怎么做?

谢谢。

最佳答案

如果您有原始整数,为什么不直接使用 that 而不是字符串,例如:

byt[0] = lengthOfMessage / 16777216;            // most significant.
byt[1] = (lengthOfMessage % 16777216) / 65536;
byt[2] = (lengthOfMessage % 65536) / 256;
byt[3] = lengthOfMessage % 256; // least significant.

如果由于某种原因您无法访问原始整数(如果字符串存储在文本文件中或通过网络发送),则可以使用 parseInt 在使用上述方法之前获取整数:

string s = "0000012eRestOfMessage";
int x;
try {
x = Integer.parseInt (s.substring (0,8), 16);
} catch (Exception e) {}
<小时/>

或者,您可以通过以下方式完全绕过中间步骤:

string s = "0000012eRestOfMessage";
byte byt[4];
try {
for (int i = 0; i < 4; i++) {
int x = Integer.parseInt (s.substring (i*2,2), 16);
byt[i] = (byte)((x > 127) ? x - 256 : x);
}
} catch (Exception e) {}

关于java - java中如何将十六进制字符串更改为4字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4059573/

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