C言語関係掲示板

過去ログ

No.474.printfで2進数を表示するには

[戻る] [ホームページ]
No.3429

2進数
投稿者---hutu(2002/11/12 12:49:33)
http://www2.realint.com/cgi-bin/tcont.cgi?pointc


1から15までの10進数.16進数.2進数の変換の問題なんですが2進数への変換方法がわかりません。16進は%Oを使っています。いい方法はありませんか
お願いします。

No.3440

Re:2進数
投稿者---ともじ(2002/11/12 20:35:40)


こんばんは。

>1から15までの10進数.16進数.2進数の変換の問題なんですが2進数への変換方法がわかりません。16進は%Oを使っています。いい方法はありませんか
>お願いします。

16進数は%xの書き間違いですね。
ところで、2進数ですが、該当する書式指定はありませんので、
自作するしかありません。

#include <stdio.h>
#include <limits.h>

void bit_disp(unsigned int dt)
{
        int i, len;

        /* unsigned int のビット数をlenにセット */
        len = sizeof(dt) * CHAR_BIT;
        
        for (i = len - 1; i >= 0; i--){
                /* ビットの表示 */
                printf("%u", (dt>>i) & 0x0001);
        }
        printf("\n");
}

int main(void)
{
	bit_disp(0xabcd);
	
	return (0);
}