Decimal to Hex

Newbie Member
13Jun2012,13:23   #1
bmsangati's Avatar
  1. //Decimal to Hex value
  2. main()
  3. {
  4. char hex[16]={"0123456789ABCDEF"};
  5. int num,i=0,j;
  6. char result[];
  7. printf("Enter the Decimal No.\n");
  8. scanf("%d",&num);
  9. while(num)
  10. {
  11. result[i]=hex[num%16];
  12. num=num=num/16;
  13. i++;
  14. }
  15. printf("Given num of the hex value is:");
  16. for(j=i-1;j>=0;j--)
  17. printf("%c",result[j]);
  18. getch();
  19. return 0;
  20. }
Newbie Member
13Jun2012,13:25   #2
bmsangati's Avatar
Quote:
Originally Posted by bmsangati View Post
  1. //Decimal to Hex value
  2. main()
  3. {
  4. char hex[16]={"0123456789ABCDEF"};
  5. int num,i=0,j;
  6. char result[];
  7. printf("Enter the Decimal No.\n");
  8. scanf("%d",&num);
  9. while(num)
  10. {
  11. result[i]=hex[num%16];
  12. num=num=num/16;
  13. i++;
  14. }
  15. printf("Given num of the hex value is:");
  16. for(j=i-1;j>=0;j--)
  17. printf("%c",result[j]);
  18. getch();
  19. return 0;
  20. }
:-(
Ambitious contributor
13Jun2012,22:19   #3
pein87's Avatar
I was going to code one for you but I found one online. Source

Code: C
string toHexadecimal(int num)
{
  int dividend, remain;
  string result = "";
  string hexArray[16];
  hexArray[0] = "0";
  hexArray[1] = "1";
  hexArray[2] = "2";
  hexArray[3] = "3";
  hexArray[4] = "4";
  hexArray[5] = "5";
  hexArray[6] = "6";
  hexArray[7] = "7";
  hexArray[8] = "8";
  hexArray[9] = "9";
  hexArray[10] = "a";
  hexArray[11] = "b";
  hexArray[12] = "c";
  hexArray[13] = "d";
  hexArray[14] = "e";
  hexArray[15] = "f";
  dividend = (int)num/16;
  remain = num%16;
  result = hexArray[remain];
  while (dividend != 0)
  {
    remain = dividend%16;
    dividend = (int)dividend/16;
    result = hexArray[remain]+result;
  }
  return result;
}

It's not meant to be a complete copy paste method but it is meant to show you what you were doing wrong. You made an array with 16 items but only assigned it one value. Each character needs to be a separate item in the array for this to work.

Last edited by pein87; 13Jun2012 at 22:21..