Konvertieren von 2 oder 4 bytes signed/unsigned short/int

Habe ich zum konvertieren von bytes signed/unsigned int oder short.

Den Methoden unten sind richtig? Die signierte und die unsignierte?

Byte-Reihenfolge: LITTLE_ENDIAN

public static int convertTwoBytesToInt1(byte b1, byte b2) {
    return (int) ((b2 << 8) | (b1 & 0xFF));
}

VS.

public static int convertTwoBytesToInt2(byte b1, byte b2) {
    return (int) (( (b2 & 0xFF) << 8) | (b1 & 0xFF));
}

und

public static int  convertFourBytesToInt1(byte b1, byte b2, byte b3, byte b4){
    return (int) ((b4<<24)+(b3<<16)+(b2<<8)+b1);
}

VS.

public static int  convertFourBytesToInt2(byte b1, byte b2, byte b3, byte b4){
    return (int) (( (b4 & 0xFF) << 24) | ((b3 & 0xFF) << 16) | ((b2 & 0xFF) << 8) | (b1 & 0xFF));
}

Ich bin interessiert nur in dieser Umwandlung bildet. Danke!

  • Ich würde ByteBuffer verwenden, da dies viel effizienter und können Sie nur setzen .order(ByteOrder.LITTLE_ENDIAN)
InformationsquelleAutor blackwolf | 2012-05-29
Schreibe einen Kommentar