Introducir un valor hexadecimal usando scanf () en C

Aquí, vamos a aprender cómo introducir un valor hexadecimal usando scanf () en el lenguaje de programación C ?

En este caso, tenemos que declarar un unsigned int variable y un valor de entrada en formato hexadecimal.

Para introducir un valor en formato hexadecimal – utilizamos “% x” o “% X” especificador de formato e imprimir el valor en formato hexadecimal – utilizamos mismo especificador de formato “% x” o “% X” .

  • “% x” – valor impresiones con alfabetos minúsculas (A a F)
  • “% X” – valor impresiones con alfabetos mayúsculas (A a F)

Nota: en scanf () , se puede utilizar tanto de los especificadores de formato “% x” o “% X” – que no afecta a la entrada del usuario, pero en el printf () “% x” o “% X” asuntos para la impresión de alfabetos en el valor hexadecimal (a a F o de a a F).

Programa 1:

#include <stdio.h>
int main(void)
{
unsigned int value;
//input "123afc"
printf("Enter hexadecimal value without "0x": ");
//using %x (small x)
scanf("%x", &value);
printf("value = 0x%x or 0X%Xn", value, value);
//input "123AfC"
printf("Enter hexadecimal value without "0X": ");
//using X (capital x)
scanf("%X", &value);
printf("value = 0x%x or 0X%Xn", value, value);
return 0;
}

salida

Enter hexadecimal value without "0x": 123afc
value = 0x123afc or 0X123AFC
Enter hexadecimal value without "0X": 123AFC
value = 0x123afc or 0X123AFC

Programa 2: Programa de pruebas con el valor hexadecimal no válido

#include <stdio.h>
int main(void)
{
unsigned int value;
//testing with invalue value
//while input, we are using alphabets
//which are greater than F
//as we know, hexadecimal allowes only
//A to F / a to f - which are equivelant
//to 10 to 15
printf("Enter a hexadecimal value: ");
scanf("%x", &value);
printf("value = %xn", value);
return 0;
}

salida

Enter a hexadecimal value: 123apd
value = 123a

Explicación:

en el valor hexadecimal 123apd , “p” no es un dígito hexadecimal, por lo tanto, la entrada es válida / aceptable hasta dígitos válidos. entrada dada 123pad se considera como 123a .


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *