La conversion d'un nombre décimal en un nombre hexadécimal
Pourquoi nous utilisons + 55 pour convertir un nombre décimal en hexadécimal num . dans ce code, nous utilisons +48 pour convertir entier de caractère . lorsque la temp < 10 . Mais lorsque la temp > =10 nous utilisons des +de 55 ans . ce qui signifie-t-il de +de 55 ans ?
#include<stdio.h>
int main(){
long int decimalNumber,remainder,quotient;
int i=1,j,temp;
char hexadecimalNumber[100];
printf("Enter any decimal number: ");
scanf("%ld",&decimalNumber);
quotient = decimalNumber;
while(quotient!=0){
temp = quotient % 16;
//To convert integer into character
if( temp < 10)
temp =temp + 48;
else
temp = temp + 55;
hexadecimalNumber[i++]= temp;
quotient = quotient / 16;
}
printf("Equivalent hexadecimal value of decimal number %d: ",decimalNumber);
for(j = i -1 ;j> 0;j--)
printf("%c",hexadecimalNumber[j]);
return 0;
}
OriginalL'auteur MD MAHBUB ALAM | 2013-06-04
Vous devez vous connecter pour publier un commentaire.
Dans un fichier ASCII de l'environnement, de 55 ans, est égal à
'A' - 10
. Cela signifie que l'ajout de 55 ans, est la même que soustrayant 10 et en ajoutant'A'
.En ASCII, les valeurs de
'A'
par'Z'
sont adjacents et séquentielle, ce qui permettra de carte 10 à'A'
, de 11 à'B'
et ainsi de suite.OriginalL'auteur caf
Pour les valeurs de
temp
moins de 10, le code ASCII est48 + temp
:Pour des valeurs de 10 ou plus, le lettre est
55 + temp
:OriginalL'auteur John
En raison de la ASCII de codage de caractères en C. Quand le reste (
temp
) est inférieur à dix, le chiffre hexadécimal est également dans la gamme de 0 à 9. Les caractères '0' à '9' sont sur la plage ASCII de 48 à 57.Quand le reste est à plus de 10 (et toujours moins de 15 ans, en raison de l'opération modulo
%
) le chiffre hexadécimal est dans la gamme de A à F, qui en ASCII est de l'ordre de 65 à 70. Donctemp + 55
est un nombre de 65 à 70 et donne ainsi un caractère dans la gamme de 'A' à 'F'.Il est plus courant d'utiliser une chaîne
char[] digits = "0123456789ABCDEF";
et utiliser le reste comme un indice de cette chaîne. La méthode dans votre question (probablement) travaille en tant que bien.OriginalL'auteur Kninnug
Nombre hexadécimal est un nombre représenté à l'aide de 16 symboles 0 à 9 chiffres et A – F alphabets. Procédure d'écrire un programme en c pour convertir un nombre décimal en hexadécimal est: Diviser le nombre décimal avec 16 à chaque étape et de prendre les restes
Ici pour les restes de 0 – 9 numéros sont utilisés, puis de représenter de 10 à 15 numéros, nous utilisons des alphabets A, B, C, D, E, F . Maintenant, combiner tous les restes en série de je.e C'est Un nombre hexadécimal de 10 (décimal )
par exemple, Pour convertir un nombre décimal 10 en hexadécimal
16 | 10
| 0 – Un
Maintenant combiner tous les restes en série de je.e Un . C'est hexadécimal nombre de 10 (décimal )
Logique du programme: Entrez un nombre décimal n, diviser n par 16 ( depuis hexadécimal ) et enregistrez reste dans la gamme et le quotient de n répétez jusqu'à ce que n est plus grand que zéro
afficher le programme:
http://www.programmingsimplysolved.com/c-programs/c-program-to-convert-decimal-number-to-hexadecimal-using-functions/
a contribué: http://www.programmingsimplysolved.com
OriginalL'auteur programmingsimplysolved.com