• 締切済み

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

専門家に質問してみよう