1

重複の可能性:
Long を byte[] に変換して Java に戻す方法

バイト配列の特定の場所からバイト値を変換したい (開始のオフセットと変換したいバイト数) int/long 値? 逆に可能であれば int の場合は --> byte : 4bytes-array を返し、long の場合は byte: 8bytes の配列を返しますか?

次のメソッドを使用しましたが、偽の値を返しています..

public static final byte[] longToByteArray(long value) {
    return new byte[] {
            (byte)(value >>> 56),
            (byte)(value >>> 48),
            (byte)(value >>> 40),
            (byte)(value >>> 32),
            (byte)(value >>> 24),
            (byte)(value >>> 16),
            (byte)(value >>> 8),
            (byte)value};
}


public static final byte[] intToByteArray(int value) {
    return new byte[] {
            (byte)(value >>> 24),
            (byte)(value >>> 16),
            (byte)(value >>> 8),
            (byte)value};
}


public static long byteToLongWert(byte[] array, int offBegin, int offEnd) 
{
    long result = 0;
    for (int i = offBegin; i<offEnd; i++) {
        result <<= 8; //verschieben um 8 bits nach links
        result += array[i];
    }
    return result;
}

public static int byteToIntWert(byte[] array, int offBegin, int offEnd) 
{
    int result = 0;
    for (int i = offBegin; i<offEnd; i++) {
        result <<= 8; //verschieben um 8 bits nach links
        result += array[i];
    }
    return result;
}

ご助力ありがとうございます!!

4

0 に答える 0