Jak czytać liczby szesnastkowe z wejścia w C? [duplikować]
Nov 20 2020
Chcę odczytać od użytkownika liczbę szesnastkową. Używam C99.
Moim pomysłem było przeczytanie znaku i sprawdzenie po kodzie znaku, jaka może to być liczba szesnastkowa.
Oto kod:
#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;
}
Ale myślę, że powinny być łatwiejsze sposoby. Ponieważ może odczytać tylko jedną liczbę, a nie dłuższe.
Czy jest coś, co mogłoby pomóc?
Odpowiedzi
nkrivenko Nov 20 2020 at 18:59
Możesz używać scanf z %x
:
#include <stdio.h>
int main() {
int a;
scanf("%x", &a);
printf("%d", a);
}
Wynik:
a -> 10
ff -> 255