ファイルの中身を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です。