17. december 2004 - 14:46
Der er
7 kommentarer og
1 løsning
Forklaring af HEX-konvertering
Hej Eksperter !
Har denne metode, som konverterer en fil til hex-repræsentation venligst lånt fra JavaWorld. Har dog et problem med at forstå linien i FOR-løkken (strXMLDoc.append(hexLookupTable[0xff & buffer[i]]);). Hvordan skal denne line forstås ? Det skal siges at hexLookupTable er et statisk array indeholdende hex-værdier.
public StringBuffer convertToHEX(String filename)
{
//Der oprettes en StringBuffer
StringBuffer strXMLDoc = new StringBuffer();
try
{
//Læser en fil og lægger den i et byte-array
byte[] buffer = readFile(filename);
//Længden af det læste data fra filen
int readBytes = buffer.length;
//Intererer buffer-arrayet
for (int i=0; i < readBytes; i++)
{
//
strXMLDoc.append(hexLookupTable[0xff & buffer[i]]);
}
System.out.println(strXMLDoc.toString());
}
catch (IOException e)
{
System.out.println("Our exception is: " + e);
}
return strXMLDoc;
}
TAK TAK :o)
17. december 2004 - 15:25
#1
Du tager hvert bostav ud af strengen, bruger & 0xFF til at få en værdi 0-255 ud af det
og bruger den som index i arrayet
17. december 2004 - 15:26
#2
& 0xFF er en bitvis AND med alle de 8 laveste bit sat d.v.s. at den bevarer de
laveste 8 bit i det man AND'er og sætter resten til 0
17. december 2004 - 15:27
#3
Øhh hvilken streng, vi flyver rundt i bits og bytes...
17. december 2004 - 15:31
#4
sorry det er ingen streng men et byte array
du tager hvert tegn ud af byte array
så er & 0xFF eneste funktion, at den konverterer byte værdier -128..127
til int værdier 0..255
17. december 2004 - 15:35
#5
Ok kan ikke lige se det for mig hvordan kan en del af en fil i et byte array blive f.eks -128? burde det ikke være 0011.0000 eller noget ligende?
17. december 2004 - 15:40
#6
alle hel tal data typer i Java er signed d.v.s. at et 8 bit hel tal (som er hvad byte
er) er -128..127 og ikke 0..255
17. december 2004 - 15:57
#7
Ok vi er blevet mere oplyst nu, tak skal du ha :-)
Smid et svar Arne.
17. december 2004 - 15:59
#8
svar
Kurser inden for grundlæggende programmering