- 340 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 22:28:40 ]
- 十進数の入力を二進数表示するコードを書いてみたんですが、
最初MASKを0x01に設定して1とか255とか入力したら桁が上下逆になりました。 0x80000000に設定して頭からチェックさせてやったらうまくいったんですが、 intel系のプロセッサはリトルエンディアンだからビットを上下逆に扱うんじゃないんですか? /* d2b.c */ #include <stdio.h> #define MASK 0x80000000 int main(void) { unsigned int x; int n; scanf("%d", &x); for(n = 0; n < 32; n++){ if( ((x << n) & MASK) == 0) putchar('0'); else putchar('1'); if( (n+1) % 4 == 0) putchar(' '); } return(0); }
|

|