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

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

 C言語の勉強や教育用に最適です。
 2004/8/23よりStudy C Ver2の販売を開始しました。
 Study C Ver2の新しい機能については
 こちらをご参照ください。
C言語でゲームプログラマーを目指す方へ
 ■C言語ゲームプログラミング講座
 C言語でのゲームプログラミングを解説する講座
 始めました。

以前に作成した2進数表記で表示するプログラムを8進数表記で表示するプログラムに改造します。 下記のようにprintf関数の書式設定で数値を10進数、8進数、16進数表示するように指定することができるので実用的にはあまり意味がありません。

	printf("%d", 10);	10進数で表示
	printf("%o", 8);	 8進数で表示
	printf("%x", 16);	16進数で表示
主な改造点は次のようになります。
・関数名をbinからoctに変更 ・ループ内の2で割っている所を8で割るように変更
・2で割った余りに応じて0か1の文字を作成する所を、8で割った余りに応じて0から7の文字を作成するように変更
・作成する文字列の最大サイズを11桁に変更
・0x80000000以上の値も扱えるようにパラメータ変数binをunsigned long型に変更


char	*oct(unsigned int bin);

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

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


char	*oct(unsigned int bin)
{
	static char
		result[20];
	int	i1;

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

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