【发布时间】:2016-03-12 05:55:03
【问题描述】:
我想知道如何将我的 32 个字符 int 转换为一个 32 字节的数组。
例子:
我有这个整数:
int test = 123456789;
我想把它变成这样:
byte[] Write_Page_Four = new byte[] {
(byte) 0x00, (byte) 0x00,
(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
(byte) 0x00, (byte) 0x01, (byte) 0x23, (byte) 0x45,
(byte) 0x67, (byte) 0x89};
目前,我正在考虑将我的 int 拆分为 2,然后手动将它们分配给字节数组,但这样做时遇到了一些麻烦,我认为这不是解决我的问题的最佳做法。
这就是我的 ATM,它正在返回错误,但仍在进行中,我可以对此提出一些建议:
String test2 = "01";
String test1 = "0x"+test2;
byte test = Byte.valueOf(test1);
System.out.println("teeeeest-----"+test);
byte[] Write_Page_Four = new byte[] {(byte) test};
这个返回一个错误:
java.lang.NumberFormatException:对于输入字符串:“0x01”
【问题讨论】:
-
这个数字太大了,无法用
int(32 位)表示。除此之外,你想byte[]代表文本,还是实际int的字节? -
@Paul 哎呀,你是对的,我应该明确指出,只有 9 位 int 会被使用,其余的前导数字都是 0。很抱歉。