- ベストアンサー
ファイルからビット単位での読み書き
手元に1MBのファイルがあります。 PCの内部ではこのファイル0,1で表現されていますよね? C言語でその1MBのファイルから01のデータを128ビットずつ読み込んできて処理したいのですが,何をどうやったらいいのか分かりません。 分かる方お願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1に加えての回答です。 読み込む領域は unsigned char ucBuffer[16]; という具合に、unsigned char の配列で定義します。そして各 ucBuffer[i] に対して各ビットに対するビット積を行い、その結果によってビット毎の処理を行います。たとえば、 int i,j; for ( i = 0; i < 16; i++ ) { for ( j = 7; j >=0; j-- ) { int nBit = ( ucBuffer & ( 1 << j ) ) ? 1 : 0 ; /******/ } } とし、コメント部分で nBit の値をもとに各ビットごとの処理を行えばいいのです。 #ただし、実際にはコメント部分では読み込みデータ→ビット値を格納する配列への変換のみを行い、実際の処理は上記の2重ループを抜けたところで行うべきです。
その他の回答 (1)
noname#5537
回答No.1
fopen でファイルを開き(バイナリモードで), fread で 16 オクテット(128 ビット)ずつ読み込めばよいでしょう。
質問者
お礼
ありがとうございました。 無事解決しました。
お礼
ありがとうございました。 無事解決しました。