C
C3lt1c84
Neues Mitglied
- 0
Hi nun steh ich vor einem neuen Problem oder ehr gesagt einen Rätzel was ich mir nicht erklären kann 
Ich habe diese 2 Funktionen schon ausprobiert um einen hex string in einen normale string umzuwandeln
String = "48539e0100000000000010"
Functionen:
public String convertHexToString(String hex){
StringBuilder sb = new StringBuilder();
StringBuilder temp = new StringBuilder();
for( int i=0; i<hex.length()-1; i+=2 ){
//grab the hex in pairs
String output = hex.substring(i, (i + 2));
//convert hex to decimal
int decimal = Integer.parseInt(output, 16);
//convert the decimal to character
sb.append((char)decimal);
}
// System.out.println("Decimal : " + temp.toString());
return sb.toString();
}
public static String hexToString(String hex) {
StringBuilder sb = new StringBuilder();
char[] hexData = hex.toCharArray();
for (int count = 0; count < hexData.length - 1; count += 2) {
int firstDigit = Character.digit(hexData[count], 16);
int lastDigit = Character.digit(hexData[count + 1], 16);
int decimal = firstDigit * 16 + lastDigit;
sb.append((char)decimal);
}
return sb.toString();
}
Aber wenn ich mir dann genau den string dann abspeicher und in einem Hexeditor öffne sehe ich das hier:
48 53 C2 9E 01 00 00 00 00 00 00 10
Warum steht da ne C2 ?? es müsste ja an der stelle die 9e dort stehen

Ich habe diese 2 Funktionen schon ausprobiert um einen hex string in einen normale string umzuwandeln
String = "48539e0100000000000010"
Functionen:
public String convertHexToString(String hex){
StringBuilder sb = new StringBuilder();
StringBuilder temp = new StringBuilder();
for( int i=0; i<hex.length()-1; i+=2 ){
//grab the hex in pairs
String output = hex.substring(i, (i + 2));
//convert hex to decimal
int decimal = Integer.parseInt(output, 16);
//convert the decimal to character
sb.append((char)decimal);
}
// System.out.println("Decimal : " + temp.toString());
return sb.toString();
}
public static String hexToString(String hex) {
StringBuilder sb = new StringBuilder();
char[] hexData = hex.toCharArray();
for (int count = 0; count < hexData.length - 1; count += 2) {
int firstDigit = Character.digit(hexData[count], 16);
int lastDigit = Character.digit(hexData[count + 1], 16);
int decimal = firstDigit * 16 + lastDigit;
sb.append((char)decimal);
}
return sb.toString();
}
Aber wenn ich mir dann genau den string dann abspeicher und in einem Hexeditor öffne sehe ich das hier:
48 53 C2 9E 01 00 00 00 00 00 00 10
Warum steht da ne C2 ?? es müsste ja an der stelle die 9e dort stehen