2010-12-31 31 views
0

10進数から16進数に変換するCコードを書きましたが、コンパイルすると、AからFを意味する10から15の16進値のみが表示されます。10進数から16進数への変換

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); 
    } 
} 
+4

で進数に変換する10進数コードをフォーマットしてください。 –

+0

何が問題なのですか?あなたの投稿を編集してください。 –

答えて

0

コードをフォーマットしてください。

おそらくこれは宿題ですが、変換に興味がある場合は、このようにしてください。

int decNum; 
scanf("%d",&decNum); 
print("%x\n",decNum); 
+0

すべて私はそれを得た – RAM812

2
#include <stdio.h> 

int main(void) { 
    int n; 

    if (scanf("%d", &n) == 1) { 
    printf("hexadecimal: %x\n", n); 
    } 
    return 0; 
} 
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(); 
} 
関連する問題