#define?LEN?100
char?*decimal2Others?(int?value,?char?*string,?int?radix)?{?/*十進制數轉任意進制*/
/*除基數取余法:十進制數不斷除以進制基數直至為零,每次相除取得余數之逆序即為轉換結果*/
int?remain,i=1,j=0;
int?temp[LEN];
while?(value)?{?/*除基數取余*/
remain?=?value?%?radix;
value?=?value?/?radix;
temp[i++]?=?remain;
}
while?(--i)?{?/*逆序存儲*/
if?(temp[i]?>?9)
string[j++]?=?temp[i]?-?10?+?'a';?/*十以上進制處理*/
else
string[j++]?=?temp[i]?+?'0';
}
string[j]?=?'\0';
return?string;
}
int?main(void)?{?
int?n;
char?string[LEN];?
printf?("請輸入十進制數:");
scanf?("%d",&n);
putchar?('\n');
puts?("================================================================================\n");
printf?("十六進制轉換結果:");?
decimal2Others?(n,string,16);
puts?(string);
putchar?('\n');
getch?();?/*屏幕暫留*/
return?0;
}
運行結果