Qui sto lavorando con un Java in C# campione traduzione app che coinvolge la crittografia (AES e RSA e così via ...)Perché la necessità di un bit "e" per alcune conversioni char in byte in Java?
Ad un certo punto nel codice Java (quello che funziona davvero e di essere tradotto in C#), ho trovato questo pezzo di codice:
for (i = i; i < size; i++) {
encodedArr[j] = (byte) (data[i] & 0x00FF);
j++;
} // where data variable is a char[] and encodedArr is a byte[]
Dopo un po 'googling (here), ho visto che questo è un comportamento comune soprattutto sul codice Java ...
so che char
è un tipo a 16 bit e byte
è solo a 8 bit, ma non potrei inserirlo e il motivo per questo bit a bit e operazione per una conversione char->byte
.
Qualcuno potrebbe spiegare?
Grazie in anticipo.
Probabilmente per aggirare un possibile overflow se c'è qualche valore nel byte superiore del char. Altrimenti basta lanciarlo risulterebbe in un overflow per un byte poiché può contenere solo 255 (FF) come valore massimo. –