【问题标题】:byte[] to int and viceversa java [duplicate]字节[]到int,反之亦然java [重复]
【发布时间】:2013-09-02 13:21:58
【问题描述】:

我有一个方法可以将 int 转换为 byte[]

private static byte[] intToBytes(int i)
{

 byte[] integerBs = new byte[MAX_INT_LEN];
 integerBs[0] = (byte) ((i >>> 24) & 0xFF);
 integerBs[1] = (byte) ((i >>> 16) & 0xFF);
 integerBs[2] = (byte) ((i >>> 8) & 0xFF);
 integerBs[3] = (byte) (i & 0xFF);
 return integerBs;
}

假设我尝试将整数 4 转换为位:

byte[] lenBs = intToBytes(4);
int a=(int)lenBs[0];
System.out.println("result:"+a);

MAX_INT_LENGTH 的值为 4

对于我作为该方法的参数输入的每个 int,我都会得到 result:0。请告诉我哪里出错了。谢谢。

【问题讨论】:

    标签: java int type-conversion bytearray


    【解决方案1】:

    lenBs[0] 刚刚得到:

    integerBs[0] = (byte) ((i >>> 24) & 0xFF);
    

    ... 在 i = 4 的情况下,integerBs[0] == 0。

    【讨论】:

    • 那么我应该如何将字节数组转换为 int ? a=(int)lenbs[3] ?
    • @EmilGrigore:您需要颠倒将int 转换为byte[] 时执行的步骤。
    • 我想我找到了这个方法:java.nio.ByteBuffer.wrap(bytes).getInt();
    • 不,一个字节的整数转换只是转换该字节。我会简单地反转 intToBytes() 中的代码。还有其他技术(例如通过 ByteBuffer),但那将在同一代码中使用两种截然不同的样式。
    • @EmilGrigore - 如果您停止寻找剪切粘贴解决方案,并花时间阅读理解,我认为您会学到更多> 代码。
    猜你喜欢
    • 2014-04-16
    • 2011-05-18
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 2012-06-28
    • 2014-11-18
    相关资源
    最近更新 更多