• 締切済み

20バイト分を2進数で表示させるプログラム

はじめまして、C言語初心者の大学生です。よろしくお願いします。 ファイルをダンプし、最初の20バイト分を2進数で表示するプログラムを作成したいのですが、どういうコマンドを使用したらいいのか分かりません。 難易度が高くなり私の手には負えなくなりました。 どなたか、良い答えをよろしくお願いします。

みんなの回答

  • harlan
  • ベストアンサー率77% (234/303)
回答No.1

扱うのはバイナリファイルですか? 使う関数はこのくらいでしょう。 ファイルオープン: fopen( ) ファイルクローズ: fclose( ) ファイルをサイズ指定でメモリに読み込む: fread( ) あとは、printf( ) など 何バイト読み込むのかが不明な時は、fgetc( ) で1文字ずつ読んだりしますが、 20バイトと決まっている場合は、fread( ) の方がプログラムが簡素になります。 表示するのが標準出力だとして、 20バイト分を unsigned char型の配列に格納したら、あとは2進数で表示する部分になります。 for( ) // 20バイト分のループ {   for( ) // 8ビット分のループ   {     配列の値を右ビットシフトさせたものと、定数1 とのビット論理積を取り     真なら 1、偽なら 0、を表示する     上位ビットから表示したいので、最初は7ビット、最後に0ビット、シフトさせる   }   バイトの区切り文字として、空白などを表示する } 参考 バイナリファイルの読み書き http://www.geocities.jp/ky_webid/c/037.html 整数値を2進数で表示する方法 http://www.kyoto-su.ac.jp/~yamada/programming/bit.html

関連するQ&A

  • *をユーザーが入力した数字の数だけ表示するプログラムの作り方を教えてください

    はじめまして。 現在C言語の勉強している大学生です。 『*』をユーザーが入力した数字の数だけ表示するプログラムの作り方を教えてください。 例えばユーザーが5と入力したら*****とでるもの。 (本に載っている演習なのですが答えがのっていないのです。) whileかforを使うのだと思うんですが。。 よろしくお願い致します。

  • 素数判定プログラム

    C言語で、『n以下のすべての素数を求めるプログラム』のソースリストを平方根を使ったやり方で作りたいのですが、エラーが出てしまって、どうしてもうまく作れません。 C言語初心者の上、勉強不足なのが悪いのですが・・・ぜひ教えてください!お願いします!

  • 簡易grepコマンドの作成を自作プログラムで作りたいのですが……

    簡易grepコマンドの作成を自作プログラムで作りたいのですが…… C言語でです。 C++ではなぃです。 できれば初心者が考えるよぉなプログラムで。 またコメントみたぃにプログラムの意味も詳しくわかりやすくあると助かります。 コンパイルは ./mygrep 検索するもの ディレクトリ/ファイル名 だった気がします。 mygrepはプログラム名です。 おねがぃします。

  • 素数を表示するプログラム(C言語・while文)

    タイトルの通り、1~1000までの素数を表示するプログラムをC言語のwhile文で作りたいと思います。ですがどうしてもプログラムの作成方法が分かりません。 プログラムの内容を教えてくださると幸いです。お願いします。

  • プログラム/条件分岐について2

    プログラム初心者です. (言語: C shell (csh)) 『ファイルAは上から5行分を使用する』 『もしファイルBに, Cの答えが2つ以上ある場合は, 最初の答えを選択する』 『もし, Dの答えが2つ以上ある場合は, ファイルEから5行目までを使用する』 というプログラムをそれぞれ組みたいと思っております. 私の日本語説明が稚拙でわかりにくいかもしれませんがどなたか教えてくださると嬉しいです>< プログラム質問第二段です...(涙) 書いて実行するたびにエラーが出てくるので質問させてもらいます>< どうぞよろしくお願いいたします.

  • C言語でアナグラムを求めるプログラム

    C言語初心者で、勉強中です。 今アナグラムを求めるプログラムをC言語で作成しています。 内容はあらかじめある英単語が書いてあるテキストファイルから互いにアナグラムとなっている英単語をすべて求めてそれを出力するというプログラムです。 どこから手をつけていいかわからず悩んでいます。 そこでヒントをいただこうと思って質問しました。 どなたか回答よろしくお願いします。

  • 四則演算プログラム(入力式の表示版)

    プログラミング初心者の大学生です。よろしくお願いいたします。  計算式入力し、計算結果を表示するプログラムの作成方法がわかりません。 条件としては、数値は実数の入力を可能とし、括弧の利用は考えないとのことです。    【実行例】  ・計算式="5.2+20*2-3"  ・結果=42.2  いきなり難易度が上がっため、自分の手には負えませんでした…。 どなたか、良いお答えをよろしくお願いいたします。

  • ファイルの中身を0と1で表現したい。

    私の父(パソコン初心者)はどこで聞いたのか、「パソコンっていうのは、0と1だけで構成されているんだよな。どうやったら見えるんだ」と言いました。 要するに、ファイルを指定して、0と1でそれが表示できればいいんだと思います。 私のPC(Windows98SE)にはVC++6.0が入ってまして、簡単だったら作ってみようと思いました。 私は、言語はC言語しか知らないので、C言語で考えてみようと思いました。 実は私のてもとには『C言語プログラミングの落とし穴』(柴田望洋著)という本がありまして、「ファイルのダンプ」というほとんどそれに近いようなプログラム(1ページくらい)があり、16進数で表現するようです。 そのプログラムの骨組みを書きます。 main関数とdump関数というもので構成されています。 main関数はファイルをオープンしてファイルポインタ(FILE*)をdumpファイルに渡し、最後にクローズするだけです。 dump関数は、ファイルポインタを受け取ります。dump関数の一番大切と思われるところを抜き出します。 void dump(FILE *src, FILE *dst) { ..... while ( (n = fread(buf, 1, 16, src) ) > 0 ){ ..... for( i=0; i<n; i++) fprintf(dst, "%02X ", (unsigned)buf[i]); ..... } ..... } あとは単に、2進数で表現すればいいのだろうと思います。 そうだとしたら、2進数で表現するにはどうすればよいですか。 16進数を2進数に変換する部分を作ればよいのでしょうか。 尚、父のPCはWindowsXPです。

  • 1000以下の自然数のうち素数で無いものを全て求め、それらを画面に表示

    1000以下の自然数のうち素数で無いものを全て求め、それらを画面に表示しかつそれらの和も画面に表示するC言語のプログラムを作成せよ。 わかりません。お願いいます。

  • 公約数のプログラム。

    今、C言語を独学していて・・・問題の答えが書いていなかったため質問させていただきます。 「与えられた2つの自然数の公約数をすべて求めよ」という問題なんですが、わかるかた教えていただきたいです。

専門家に質問してみよう