Hier arbeite ich mit einer Java zu C# Beispiel App Übersetzung, die Kryptografie (AES und RSA und so weiter ...)Warum die Notwendigkeit eines bitweisen "und" für einige Char-to-Byte-Konvertierungen in Java?
Irgendwann im Java-Code (der, der tatsächlich funktioniert und in C# übersetzt wird)), habe ich dieses Stück Code gefunden:
for (i = i; i < size; i++) {
encodedArr[j] = (byte) (data[i] & 0x00FF);
j++;
} // where data variable is a char[] and encodedArr is a byte[]
Nach einigen googeln (here), habe ich gesehen, dass dies ein gemeinsames Verhalten auf Java-Code in erster Linie ist ...
ich weiß, dass char
ist ein 16-Bit-Typ und byte
ist nur 8-Bit, aber ich könnte nicht unterbestimmen nd den Grund für diese bitweise und Operation für eine char->byte
Umwandlung.
Könnte jemand erklären?
Vielen Dank im Voraus.
Es ist wahrscheinlich, einen möglichen Überlauf zu umgehen, wenn es einen Wert im oberen Byte des Zeichens gibt. Anderenfalls würde ein Casting nur zu einem Überlauf für ein Byte führen, da es nur 255 (FF) als Maximalwert halten kann. –