数値を16進数表記で表示する
C言語ケーススタディ

Study C Ver2販売開始のお知らせ

 C言語の勉強や教育用に最適です。
 2004/8/23よりStudy C Ver2の販売を開始しました。
 Study C Ver2の新しい機能については
 こちらをご参照ください。

今回は8進数表記で表示するプログラムを16進数表記で表示するプログラムに改造します。 このプログラムもprintf関数の書式設定で数値を16進数表示するように指定することができるので実用的にはあまり意味がありません。

16進数は0から9までは数字、10から15まではAからFの英文字を使用します。 8進数の変換では、result[(8-1)-i1] = '0' + bin % 8; で変換できましたが16進数の場合はif文で0から9の時と10以上の時に分けて変換する必要があります。

主な改造点は次のようになります。
・関数名をoctからhexに変更 ・ループ内の8で割っている所を16で割るように変更
・8で割った余りに応じて文字を作成する所を、16で割った余りに応じて0から9/AからFの文字を作成するように変更
・作成する文字列の最大サイズを8桁に変更


char	*hex(unsigned int bin);

main(int argc, char *argv[])
{
	int	bin;

        if(argc != 2){
                printf("コマンドの入力形式が間違っています.\n");        
                return;
        }
	bin = atoi(argv[1]);
	printf(">>>%s\n", hex(bin));
}


char	*hex(unsigned int bin)
{
	static char
		result[10];
	int	i1;

	result[8] = '\0';
	for(i1 = 0; i1 < 8; i1++){
		if(bin % 16 >= 10){
			result[(8-1)-i1] = 'A' + (bin % 16 - 10);
		}
		else{
			result[(8-1)-i1] = '0' + bin % 16;
		}
		bin = bin / 16;
	}
	return(result);
}
Study Cにロードする Study Cにロードし編集する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて... 「run 123」のように実行する必要があるので実行ボタンはありません

C言語でゲームプログラマーを目指す方へ
 ■C言語ゲームプログラミング講座
 C言語でのゲームプログラミングを解説する講座
 始めました。

お問い合わせ先 C言語学習塾のトップページに戻る Copyright(C) 2003 潟Iーキッド