Hallo,
ich will über einen DataOutputStream Integer-Werte versenden, möchte diese aber in bytes zerlegen und beim Empfänger wieder zusammen setzen.
Nun habe ich einige Methoden im Internet gefunden und gemerkt, dass ich noch einiges über Bitverschiebungen lernen muss.
Eine Methode war folgende:
Dass & eine Und-Verknüpfung ist, weiß ich bereits. Aber ich dachte das geht nur bei Bits, wie werden ganze Bytes überprüft? Und wofür ist das nötig?
Und warum schreibt man 255 hexadezimal?
Noch eine Frage: Verschiebt man Bits um 16 Stellen, wie oben geschehen, sprengt das doch den 8-bit Rahmen eines bytes. Werden die Werte dann als Integer gespeichert?
Vielen Dank!
ich will über einen DataOutputStream Integer-Werte versenden, möchte diese aber in bytes zerlegen und beim Empfänger wieder zusammen setzen.
Nun habe ich einige Methoden im Internet gefunden und gemerkt, dass ich noch einiges über Bitverschiebungen lernen muss.
Eine Methode war folgende:
Java:
public static final int byteArrayToInt(byte [] b) {
return (b[0] << 24)
+ ((b[1] & 0xFF) << 16)
+ ((b[2] & 0xFF) << 8)
+ (b[3] & 0xFF);
}
Und warum schreibt man 255 hexadezimal?
Noch eine Frage: Verschiebt man Bits um 16 Stellen, wie oben geschehen, sprengt das doch den 8-bit Rahmen eines bytes. Werden die Werte dann als Integer gespeichert?
Vielen Dank!