C言語-10進法を16進法に変換する
比較的よく見るタイプの問題
書き方は人それぞれなんですが今回はオーソドックスなやり方です。
コード
#include <stdio.h> int main(void) { int i=0,j=0; int num; char henkan[16] = "0123456789ABCDEF"; char answer[10]; printf("整数を入れてください:"); scanf("%d",&num); while(num > 0) { // 入力した数値を16で割り、その余りと商をだす j = num % 16; num = num / 16; answer[i] = henkan[j]; i++; } i--; printf("この整数を16進法に変換すると"); for(j=i; j>=0; j--) { printf("%c",answer[j]); } printf("\n"); return 0; }
ちょっと解説します.
といっても10進法を16進法に置き換える手計算を地道にやっているだけです.
10進数から16進数に変換する|基数変換|基本情報技術者講座
実行結果
整数を入れてください:123456789 この整数を16進法に変換すると75BCD15