2

バイナリ ファイルに 1 ビットを書き込みたい。

using (FileStream fileStream = new FileStream(@"myfile.bin", FileMode.Create))
using (BinaryWriter binaryWriter = new BinaryWriter(fileStream))
{
    binaryWriter.Write((bool)10);
}

binaryWriter.Write((bit)1);
ファイルを使用するときのようなものbinaryWriter.Write((bool)1)は1バイトですが、1ビットを書き込みたいです。これは可能ですか?

4

4 に答える 4

8

いいえ、1ビットを書き込むことはできません。少なくともフルバイトを書き込む必要があります。シングルビットを書き込みたい場合は、8ビットの書き込み準備が整うまで待ってから(つまり、メモリにキューに入れて)、フルバイトを書き出す(つまり、ビットシフトなどを使用してそれらを組み合わせる)ことができます。ビットからバイト)。

ウィキペディアからも:

歴史的に、バイトはコンピュータでテキストの1文字をエンコードするために使用されるビット数であり、このため、多くのコンピュータアーキテクチャでアドレス可能な基本要素です。

于 2012-04-07T19:44:48.113 に答える
3

1つのファイルに1ビットだけを保存することはできません。最近のほとんどすべてのファイルシステムとハードウェアは、データを8ビット、別名バイトまたはオクテットのセグメントに格納します。

ビット値をファイルに保存する場合は、1または0をバイトとして保存します(00000001または00000000)。

于 2012-04-07T19:46:05.223 に答える
0

ビットのみを書き込む場合は、8ビットを1バイトに混在させることができます。ただし、1ビットを書き込むことはできません。

于 2012-04-07T19:47:49.037 に答える
0

おそらく、読み取り/変更/書き込みで実行できます。なぜそんなことをしたいのですか?それが何であれ、別の方法を見つけて、ビットをバイトにパックし、ブール値のバイトを読み書きしてビットに戻し、ASCIIの「0」と「1」を使用します-一度に1ビットずつ読み書きする以外はほとんど何でも。

于 2012-04-07T19:49:26.600 に答える