gpt4 book ai didi

c# - 将 BitArray 转换为小字节数组

转载 作者:太空宇宙 更新时间:2023-11-03 21:39:09 25 4
gpt4 key购买 nike

我已经阅读了关于 BitArray 转换的其他帖子,并亲自尝试了几个,但似乎没有一个能提供我想要的结果。

我的情况是这样的,我有一些控制 LED 灯条的 c# 代码。要向 strip 发出单个命令,我最多需要 28 位

1 位用于在 2 个 LED 灯条之间进行选择

6 个位置(最多 48 个可寻址 LED)

7 表示颜色 x3(0-127 颜色值)

假设我为该结构创建了一个 BitArray,作为示例,我们半随机地填充它。

        BitArray ba = new BitArray(28);

for(int i = 0 ;i < 28; i++)
{
if (i % 3 == 0)
ba.Set(i, true);
else
ba.Set(i, false);
}

现在我想把这 28 位放在 4 个字节中(最后 4 位可以是停止信号),最后把它变成一个字符串,这样我就可以通过 USB 将字符串发送到 LED 灯条。

我尝试过的所有方法都将每个 1 和 0 转换为文字字符,这不是目标。

有没有一种直接的方法可以在 C# 中进行这种位压缩?

最佳答案

那么你可以使用 BitArray.CopyTo :

byte[] bytes = new byte[4];
ba.CopyTo(bytes, 0);

或者:

int[] ints = new int[1];
ba.CopyTo(ints, 0);

虽然不清楚您希望string 表示什么 - 您处理的是自然二进制数据而不是文本数据...

关于c# - 将 BitArray 转换为小字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20247461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com