• ベストアンサー

ビット内容の表示(C言語)

自分はC言語初心者です。 任意のビット1つを立てて表示するプログラムを作っています。 ビットの立て方はわかったのですが、それをどう表示するかがわかりません。 もっている参考書にも載っていませんし、色々調べてみてもわかりませんでした。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#20242
noname#20242
回答No.2

↓こんな感じでどうでしょうか? #include <stdio.h> void main(void) { int i, bit_len, val; char a; a = '\x02'; bit_len = sizeof(a) * 8; for (i = bit_len - 1; i >= 0; i--) { val = (a >> i) & 1; printf("%d", val); } printf("\n"); }

cermet
質問者

補足

ご回答ありがとうございます。 ちょっとわからないところがあります。 なぜaがcharで宣言されているのでしょうか?

その他の回答 (2)

noname#20242
noname#20242
回答No.3

ANo.#2への回答です。 > なぜaがcharで宣言されているのでしょうか? 例として char を使っただけで、特に深い意味はありません。 intやlongでも問題ありません。

cermet
質問者

お礼

わかりました。ありがとうございます。

noname#39970
noname#39970
回答No.1

数値として そのまま表示  ではだめなの? intやcharのビット操作をしてそれのビットを確認したい っていうなら数値を2進数変換すれば良いんじゃないかな http://www.google.co.jp/search?hl=ja&q=printf+2%E9%80%B2%E6%95%B0&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja

cermet
質問者

補足

ご回答ありがとうございます。 なんか難しく考えすぎていたようです。 そこまで考えが回りませんでした。

関連するQ&A

  • C言語のビットシフトの質問

    C言語の右ビットシフトで、以下のプログラムの結果について、納得できずにいます。 dを右にシフトすると、上位ビットには0が入るのではないでしょうか? よろしくお願いします。 プログラム unsigned char d='0'; printf("%c\n", d); printf("%c\n", d>>5); 結果 0 『

  • C言語 ?のついた処理内容

    C言語初心者です。 FFTの勉強をしようと先人の作ったC言語プログラムを 参考に処理内容を勉強中ですが、以下の文が どのような処理を行っているのか理解できません。 ご存知の方たいへんおてすうですが、処理内容を ご教授をお願いします。 よろしくお願いします。  w = (flag? M_PI: -M_PI) / (double)n;

  • 32ビットの世界 ”c ”16ビットとの関連も

    現在のコンパイラーなどは16ビットを想定しないものになっているのでしょうか?  NEC98時代のコードが頻繁に出てくる1996年ごろの「はじめてのc言語」という本を 参考にして コンパイラーはBorland C++CompilerにGUIパッチをあてた、"C Pad for Borland C++Compiler"で 作業をしています。  本が古すぎて、16ビット コード が書かれているため、実行ファィルまではできますが、これを いざ!実行の段階ではXPのマシンでは正確には動きません。windows 98では動くこともあります。例えば、 以下のURL は ”カラー表示プログラム” ですが http://oshiete1.goo.ne.jp/kotaeru.php3?q=1196473 ASC2制御コードなどは どうなのでしょうか? BEL  は 07 と指定してますがなりません。   現在の32ビットの世界と向き合って、勉強する前に、その付き合い方を 伝授 してほしいのですが。勿論 c言語の取り組み方です。16ビットとの関連も含めて よろしくお願いします。

  • C言語でのプログラムの作り方

    はじめまして。C言語初心者の中学一年生です。 C言語でプログラムを作ろうと思ったのですが、やり方がわかりません。 ”hello”と表示するプログラムの作り方を教えてください。 使用しているコンパイラは"Visual C++ 2010"です。パソコンはWindows xpです。 中学生でも分かるように教えてください。 エディエタ、やソースプログラムなどの用語についても教えてくださると嬉しいです。

  • C言語について

    C言語初心者です。 「かんたんC言語」という書籍で学習しております。 コマンドプロンプトでのプログラムの実行方法がよくわかりません。 教えて頂けないでしょうか?

  • C言語

    C言語初心者です。 整数を入力しその数が偶数ならプログラムを終了する。奇数ならそれが3の倍数か3の倍数でないかを表示する。入力した数が奇数ならこの操作を何回も繰り返すプログラムを作りたいです。 このプログラムのソースを教えてください。

  • C言語

    プログラム言語のC言語について教えて下さい。 昔BASICを少し勉強しました。 それからプログラム言語から離れてましたがC言語を見て疑問があります。 BASICなら例えば最初に 10 ~ 20 GO TO~ みたいに上段、左詰めでプログラムを書いてましたがC言語って本を見るとやたら左側が膨らんだ?ような空白みたいな表記になってますよね?(説明下手でごめんなさい) この空白みたいな意味が分からないし、この空白?もスペースキーで打つのか分かりません。 C言語の表記の仕方について詳しい方、こんな初心者にでも簡単に分かるように説明して下さる方いたらよろしくお願いします。

  • ビット列を表示するプログラム

    C言語の問題でビット列を表示するプログラムが全くできません。 どなたか分かる人はどうか知恵を貸してください。 ユーザが整数を入力すると、その整数をINT型の変数に入れ、そのビット列を表示するプログラム。 ただ、INT型のビット数は環境によって変わる可能性があるため、sizeof()関数を利用してINT型の変数のビット数を求め、そのビット数分だけ表示する。

  • c言語の初心者です

    c言語の初心者です 2進数を入力して10進数を表示するプログラムを作りたいのですが まったくできません それなので2進数の入力のヒントだけでも教えてもらえないでしょうか?

  • C言語のビット演算子に関して

    はじめまして、今C言語の学習(半月ほど)を行っている者ですが ビット演算子のところで悩んでおります。 問題文に 変数cの2ビット目と3ビット目をONにする、 あるいはOFFにするといった表記がでてくるのですが このON、OFFとは何を意味しているのかいっこうにわかりません。 (私の考えではONとは1を意味しており2ビット目、3ビット目を ONにするとは -------------------------------------------------------------- ~1|1|0|0 (右から0ビット目、1ビット目、2ビット目、3ビット目) -------------------------------------------------------------- ということを言っているのではないだろうかと思っています。) ビットに関して私の勉強不足であることは十分に認識して おりますが、何かヒントをいただけるとありがたく思っています。 宜しくお願いいたします。