-->

写一个单位使用的BinaryWriter二进制文件(Write one single bit to

2019-09-16 10:16发布

我想一个单个位写一个二进制文件。

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)该文件有一个字节,但是我想写一个单个位。 这可能吗?

Answer 1:

你不能存储在一个文件中只有1位。 几乎所有的现代的文件系统和在8个比特的段五金店数据,又名字节或字节。

如果你想存储在一个文件中位值,存储1或0作为一个字节(00000001或00000000)。



Answer 2:

不,这不是可以写一个单个位。 你必须至少写一个完整的字节。 如果你是在你想要写单位的情况下,你可以等到你准备好写8位(即排队它们在内存中),然后(即使用位移位等结合起来那些写出一个完整的字节位为一个字节)。

同样来自维基百科 :

从历史上看,一个字节是用来单个文本字符编码在计算机的比特的数量和用于这个原因,它是在许多计算机体系结构的基本寻址元件。



Answer 3:

如果你正在写只有位,您可在8位混合成一个字节。 但它不是可以写一个单个位。



Answer 4:

您可以通过读取可能做到这一点/修改/写入。 你为什么要做这样的事情? 不管是什么,另谋出路,包位成字节,读/写布尔字节并将其转换回位,使用ASCII“0”和“1” - 除了读书,每次写一个位amost什么。



文章来源: Write one single bit to binary file using BinaryWriter