我认为int和byte []之间的转换是如此简单,我试图将值转换为byte [],然后重新设置其他函数中的值以获取int。例如,int x = 89;和byte [] y;,转换y =(byte [])x,不起作用。 我怎样才能做到这一点 ?我想要的,例如:
in func1 in func2
int x ; x value is casted in the y y is taken and x value is
byte[] y; extracted
------func1----------- --------func2---------
^ ^ ^ ^
x = 33 ==feed into==> byte [] ===> extraction ===> 33
答案 0 :(得分:1)
使用ByteBuffer类
ByteBuffer b = ByteBuffer.allocate(4);
b.putInt(0xABABABAB);
byte[] arr = b.array();
BigInteger上课。
byte[] arr = BigInteger.valueOf(0xABABABAB).toByteArray();
答案 1 :(得分:0)
你不能在Java中使用类型转换来做这种事情。这些是转换,必须以编程方式完成。
例如:
int input = ...
byte[] output = new byte[4];
output[0] = (byte) ((input >> 24) & 0xff);
output[1] = (byte) ((input >> 16) & 0xff);
output[2] = (byte) ((input >> 8) & 0xff);
output[3] = (byte) (input & 0xff);
(有更优雅的方式进行此特定转换。)
从byte[]
转到“别的东西”同样是一种转换......根据“别的东西”的不同,这可能是也可能是不可能的。
转换回int:
byte[] input = ...
int output = (input[0] << 24) | (input[1] << 16) | (input[2] << 8) | input[3]
此Q&amp; A为int
&lt; - &gt;提供了其他方法。 byte[]
:Java integer to byte array