首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java -将int转换为4字节的字节数组?

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

Stack Overflow用户
提问于 2011-06-17 00:01:13
回答 4查看 141.6K关注 0票数 81

可能重复:

Convert integer into byte array (Java)

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

伪代码:

代码语言:javascript
复制
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;
}

实现这一目标的最佳方式是什么?请记住,稍后我必须将该字节数组转换回整数。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-06-17 00:05:31

您可以使用如下ByteBufferyourInt转换为字节:

代码语言:javascript
复制
return ByteBuffer.allocate(4).putInt(yourInt).array();

请注意,在执行此操作时可能需要考虑byte order

票数 140
EN

Stack Overflow用户

发布于 2012-04-30 16:16:04

代码语言:javascript
复制
public static  byte[] my_int_to_bb_le(int myInteger){
    return ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN).putInt(myInteger).array();
}

public static int my_bb_to_int_le(byte [] byteBarray){
    return ByteBuffer.wrap(byteBarray).order(ByteOrder.LITTLE_ENDIAN).getInt();
}

public static  byte[] my_int_to_bb_be(int myInteger){
    return ByteBuffer.allocate(4).order(ByteOrder.BIG_ENDIAN).putInt(myInteger).array();
}

public static int my_bb_to_int_be(byte [] byteBarray){
    return ByteBuffer.wrap(byteBarray).order(ByteOrder.BIG_ENDIAN).getInt();
}
票数 47
EN

Stack Overflow用户

发布于 2011-06-17 00:04:42

这应该是可行的:

代码语言:javascript
复制
public static final byte[] intToByteArray(int value) {
    return new byte[] {
            (byte)(value >>> 24),
            (byte)(value >>> 16),
            (byte)(value >>> 8),
            (byte)value};
}

代码taken from here

编辑一个更简单的解决方案是given in this thread

票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6374915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档