当前位置: 首页 > 面试题库 >

Java-将int转换为4个字节的字节数组?

唐阳飙
2023-03-14
问题内容

我需要将缓冲区的长度存储在4个字节大的字节数组中。

代码

private byte[] convertLengthToByte(byte[] myBuffer)
{
    int length = myBuffer.length;

    byte[] byteLength = new byte[4];

    //here is where I need to convert the int length to a byte array
    byteLength = length.toByteArray;

    return byteLength;
}

做到这一点的最佳方法是什么?请记住,稍后我必须将该字节数组转换回整数。


问题答案:

您可以yourInt使用以下方式将其转换为字节ByteBuffer

return ByteBuffer.allocate(4).putInt(yourInt).array();

注意,这样做时可能必须考虑字节顺序。



 类似资料:
  • 我目前正在处理一些小的endian二进制数据,我已经到了一个尴尬的地步,需要将奇数字节转换成整数值。 现在使用类,我能够很好地使用函数读取int和long,它们分别读取4和8个字节。 然而,在本例中,我需要读取三个字节,并将它们转换为int。我尝试过使用(2字节1字节),但我认为这不是正确的方法。 我猜我需要对字节进行位移位才能得到正确的int值,但我总是对位移位感到困惑。 此外,我还以为字节缓冲

  • 问题内容: 我将开始处理需要读取字节并创建字符串的内容。读取的字节代表UTF-16字符串。因此,为了进行测试,我想将UTF-16编码的简单字节数组转换为字符串。数组中的前2个字节必须表示字节序,因此必须为0xff 0xfe或0xfe 0xff。所以我尝试如下创建字节数组: 但是我收到一个错误,因为0xFF和0xFE太大而无法容纳一个字节(因为字节是用Java签名的)。更准确地说,错误是int无法转

  • 我知道,如果我们对字节值执行算术运算,那么隐式地将其提升为int值,结果将是int值,因此我们需要显式地将其转换为byte,以便将结果存储在byte变量中。但我想问- 从字节到int的转换是在声明它的时候发生的,还是在我们在算术运算中使用它的时候发生的?因为我使用的java反编译器在声明时将它从字节转换为int。所以,这是反编译器的问题还是真的是这样。 如果它真的发生在声明时,那么为什么存储超出字

  • 我必须在皈依前向小恩迪安下订单。 在第一种情况下,我很容易进行转换: 在第二种情况下,转换不起作用: 数字3832745171大于,但如果我试图转换为long,我也会遇到问题。 我怎么能这么做?谢谢。 尝试将字节数组转换为int/long类型。

  • 问题内容: 我正在尝试将一个转换成三个表示那个(大端)。 我敢肯定,这与位和移位有关。但是我不知道如何去做。 例如: *注意,我知道一个int是4个字节,三个字节有上溢/下溢的机会。 问题答案: 要获取最低有效字节: 第二个最低有效字节: 和第三个最低有效字节: 说明: 将值与0xFF(二进制为11111111)按位与将返回该数字中的最低有效8位(位0至7)。将数字右移8次会将第8至15位置于第0

  • 问题内容: 实际上,我需要将值与过孔一起转移。.现在我的问题是我需要将a。转移为 单个 值.. tat是否可以 转换 为 单个 值..并在那里检索它…我尝试了 铸造 的事情,但它不是有用。如果我的做法是正确的只是帮助我这个,或者说一些其他的方式。 (每次使用铸造时,返回的都是65535) 问题答案: 那这个呢? 和