Wie lese ich Hexadezimalzahlen von der Eingabe in C? [Duplikat]

Nov 20 2020

Ich möchte eine Hexadezimalzahl vom Benutzer lesen. Ich benutze C99.

Meine Idee war, ein Zeichen zu lesen und anhand des Zeichencodes zu überprüfen, welche Hexadezimalzahl es sein könnte.

Hier ist der Code:

#include <stdio.h>
int main() {
    char count;
    int c;
    printf("Enter hex value:\n");
    scanf("%c", &count);
    if (count >= 48 && count <= 57) {
        c = count - 48;
    }
    if (count >= 65 && count <= 70) {
        c = count - 55;
    }
    if (count >= 97 && count <= 102) {
        c = count - 87;
    }
    printf("%d", c);
    return 0;
}

Aber ich denke, es sollte einfachere Wege geben. Weil es nur eine Nummer lesen kann und nicht mehr.

Gibt es etwas, das helfen könnte?

Antworten

nkrivenko Nov 20 2020 at 18:59

Sie können scanf verwenden mit %x:

#include <stdio.h>

int main() {
    int a;
    scanf("%x", &a);
    printf("%d", a);
}

Ausgabe:

a -> 10
ff -> 255