Ma forse non hai ancora capito .... non ha senso dire "byte in esadecimale" !!Originariamente inviato da SHARKSEAL
Potresti dirmi come ???
Un byte è un byte .... sono 8 bit. Secondo il codice ASCII la "P" in binario è 01010000.
Che in decimale è 80, in esadecimale è 50 e in ottale è 120. Sono tutti equivalenti.
La questione "decimale", "esadecimale", "ottale" è solo una questione di rappresentazione "visiva".
getBytes() nel primo byte del buffer ti mette un byte 01010000.
Se tu stampi con
System.out.println(writeBuffer[i]);
te lo stampa in decimale.
Vuoi stamparlo esadecimale?
System.out.println(Integer.toString(writeBuffer[i] & 0xff, 16));
Costruttore di String che riceve un byte[]Originariamente inviato da SHARKSEAL
e conosci anche il metodo inverso per ottenere dall'array di byte di nuovo la stringa
P.S.: nota che quando si parla di conversione tra String e byte[] si dovrebbero anche sempre considerare le questioni sul charset. getBytes() e il costruttore String(byte[] bytes) usano il charset di "default" della piattaforma. Quale sia .... dipende e potrebbe anche non essere appropriato per quello che devi fare.
Esistono infatti il getBytes(String charsetName) e il costruttore String(byte[] bytes, String charsetName) e questi andrebbero usati se si "sa" o si vuole imporre un certo charset per la (de)codifica dei caratteri.

Rispondi quotando