Guten Abend miteinander.
Ich habe in einem Teil meines Codes eine Umwandlung von einer int Zahl (0-15) in ein char vorgesehen, also sozusagen eine Dezimal- Hexdezimalumwandlung der ersten Ziffern des Hexadezimalsystems. Wenn ich alle if-Anweisungen einzeln ausschreibe, stimmt die Ausgabe mit den Tests überein.
usw. bis
Da dies aber sehr ungenerisch ist, habe ich mir überlegt dies mit 2 Arrays und 2 For-Schleifen zu probieren.
Meine Logik dabei: Die if-Anweisung soll prüfen ob im ersten Fall das int 0 ist, falls ja soll 0 zugewiesen werden.
Die Ergebnisse stimmen leider nicht, es kommt am Ende immer F raus.
Wo habe ich hier meinen Denkfehler?
Beste Grüße, Juri
Ich habe in einem Teil meines Codes eine Umwandlung von einer int Zahl (0-15) in ein char vorgesehen, also sozusagen eine Dezimal- Hexdezimalumwandlung der ersten Ziffern des Hexadezimalsystems. Wenn ich alle if-Anweisungen einzeln ausschreibe, stimmt die Ausgabe mit den Tests überein.
Code:
char c = ' ';
if (prüfZ == hexZahlen[0]) {
c = '0';
} else if (prüfZ == hexZahlen[1]) {
c = '1';}
Code:
c = 'F';
Da dies aber sehr ungenerisch ist, habe ich mir überlegt dies mit 2 Arrays und 2 For-Schleifen zu probieren.
Code:
int checkNum = prüfung % 16;
int[] numbers = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
char[] hexChars = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
char c = ' ';
for (int i = 0; i < numbers.length; i++) {
for (int j = 0; j < hexChars.length; j++) {
if (checkNum == numbers[i]) {
c = hexChars[j];
}
}
}
Die Ergebnisse stimmen leider nicht, es kommt am Ende immer F raus.
Wo habe ich hier meinen Denkfehler?
Beste Grüße, Juri