十進制轉十六進制
阿新 • • 發佈:2018-04-07
n) stdio.h def pre -- sta printf pan cas
思路:1、正數 --> (該數%16) 余數 >= 10, 余數 < 10;
2、負數
3、零
//十進制轉化為十六進制 //逆序存儲在一個字符串數組中 #include<stdio.h> char* TenToSixteen(int ten){ char str[20]; int i = 0,w = 0,temp = ten,status; if(temp>= 0) status = 1; else status = 0; switch(status){ case 1: //當為正數 if(ten==0) str[w++] = ‘0‘; else{ while(temp> 0){ int elem = temp%16; if(elem>9){ elem = elem -10 +‘A‘; str[w++] = elem; } else str[w++] = elem + ‘0‘; temp= temp/16; } } break; case 0: //當為負數 temp = -temp; while(temp> 0){ int elem = temp%16; if(elem>9){ elem = elem -10 +‘A‘; str[w++] = elem; }else str[w++] = elem + ‘0‘; temp = temp/16; } str[w++] = ‘-‘; break; default :printf("error!\n"); } //打印十六進制的數 for(i = w-1;i>=0;i--){ printf("%c",str[i]); } }
十進制轉十六進制