我编写的C代码从十进制转换为十六进制,但是我编译它只显示十六进制值10到15,表示A到F.请参阅下面的代码。
main()
{
int n,r[10],i,d=0,e=1;
printf("Enter the decimal number\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
r[i]=n%16;
n=n/16;
d=d+(r[i]*e);
e=e*10;
}
i--;
for(i=n;i>=0;i--)
{
if(r[i]==10)
printf("A");
else if(r[i]==11)
printf("B");
else if(r[i]==12)
printf("C");
else if(r[i]==13)
printf("D");
else if(r[i]==14)
printf("E");
else if(r[i]==15)
printf("F");
else
printf("hexa decimal value %d\n",d);
}
}
答案 0 :(得分:2)
#include <stdio.h>
int main(void) {
int n;
if (scanf("%d", &n) == 1) {
printf("hexadecimal: %x\n", n);
}
return 0;
}
答案 1 :(得分:0)
请格式化代码。
也许这是一个功课,但如果你只对转换感兴趣,那就这样做。
int decNum;
scanf("%d",&decNum);
print("%x\n",decNum);
答案 2 :(得分:0)
在 C语言中将十进制转换为十六进制
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
long int n,n1,rem;
char *ans="\0",*ch;
clrscr();
printf("\nEnter Your Decimal No :: ");
scanf("%ld",&n);
n1=n;
while(n>0)
{
rem=n%16;
ch=NULL;
sprintf(ch,"%s",((rem==10)?"A":(rem==11)?"B":(rem==12)?"C":(rem==13)?"D":(rem==14)?"E":(rem==15)?"F":"Z"));
if(strcmp(ch,"Z")==0)
sprintf(ch,"%ld",rem);
strcat(ans,ch);
n=n/16;
}
printf("\nYour Decimal No is :: %ld",n1);
printf("\nConvert into Hexadecimal No is :: %s",strrev(ans));
printf("\n\n\n\tThank You");
getch();
}