お題:
10進数を16進数に変換する。
①はじめに、1から255までの整数を入力させる。
②その10進数を16進数に変換すると、どんな数になるか答える。
プログラム実行例
1から255までの整数を入力してください。 a:18 16進数に変換すると:12 |
必須事項
・if文、switch文を使う。
switch文は単なる場合分けをしてくれます。作る側にとって、直感的に作れるので便利です。
例えば以下のように記述します
Switch (a % 3) {
case 0 : puts("aは3で割り切れる"); break;
case 1 : puts("aを3で割ると1余る"); break;
case 2 : puts("aを3で割ると2余る"); break;
}
()の中の答えをcaseで場合分けして、それぞれの命令を実行します。ここで重要なのは、各命令の最後にあるbreak;で、これがないと、switchのブロック{}を抜ける事ができません。
16進数はネットで調べれば光速で見つかるので、調べてください。
解答掲載は7月12日の夜です。それまでに各自プログラムを作成し、
・プログラム文
・その実行ファイル
をメールに添付ingしてください。
解答、質問はこちらまで。
cosmo-cleaner@za.pial.jp
---------------------------------------------------------------
解答
解答例は以下の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #include <stdio.h> int main () { |
実行例は以下の通りです。
1から255までの整数を入力してください |
解説
16進数は桁が16までいくと、桁が繰り上がります。10進数の世界では数字が0から9までしかないので、10以上を1桁で表すためにA,B,C,D,E,Fの英語を使います。このプログラムは、その過程を忠実に実行しているだけです。
まず、青い部分では16進数の2桁のうちの16の位?つまり2桁目の変換を行います。1から255までの整数が来るはずなので、16進数が3ケタになる事はありません。ptintf(””)を改行なしで使うことで、16進数の二桁目を表示した後、改行せず1桁目を並べることができます。
赤い部分は16進数の1桁目を変換していますが、やってることは青い部分と同じです。aが10以下ならそのまま表示して、10以上なら英語に変換します。
今回解答が1番早かったのは僕です。かなしいです。
答えられる範囲で質問いつでも受け付けます。
cosmo-cleaner@za.pial.jp
0 件のコメント:
コメントを投稿