相关疑难解决方法(0)

28
推荐指数
2
解决办法
4万
查看次数

byte [] to bool []用作标志,反之亦然

好吧,所以我有一个字节[],我得到使用 File.ReadAllBytes(filename); 我的问题是我的程序需要将文件中的数据视为一个bool数组.我搜索过,但我没有找到一种方法来获得正确有效的转换.一个例子是:

{ 00101011, 10111010 } ->
            { false, false, true, false, true, false, false, true, true,
              false, true, true, true, false, true, false }
Run Code Online (Sandbox Code Playgroud)

我还需要改变程序.

我遇到的大多数解决方案涉及从每个字节中获取一个布尔值.即,得到的数组与数组的bool[]长度相同byte[],我似乎不明白这是怎么可能的,8位如何只产生一个布尔值?在我的情况下,我需要一个结果数组:bool[bytes.Length * 8].

非常感谢,任何帮助都非常感谢.

实现其中一个解决方案我试图让它工作但它有点错误,因为生成的文件,我读取的文件的副本被损坏:

public static bool[] boolsFromFile(string filename)
    {
        List<bool> b = new List<bool>();
        using (FileStream fileStream = new FileStream(filename, FileMode.Open))
        using (BinaryReader read = new BinaryReader(fileStream))
        {
            while (fileStream.Position != fileStream.Length)
                b.Add(read.ReadBoolean());
        }
        return b.ToArray();
    }

    public static void boolsToFile(string filename, bool[] bools)
    {
        using …
Run Code Online (Sandbox Code Playgroud)

c# bits boolean bytearray bitarray

4
推荐指数
1
解决办法
899
查看次数

标签 统计

c# ×2

bit-manipulation ×1

bitarray ×1

bits ×1

boolean ×1

bytearray ×1