将位数组转换为 uint 或类似的打包值
我有大量布尔值,我想将它们打包/解包为 uint 或类似的值。我怎样才能在 C# 中做到这一点?
I have a large array of booleans, and I want to pack/unpack them into a uint or similar value. How can I do this in C#?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用 BitArray 类将 bool 数组转换为 int 数组:
You can use the
BitArray
class to convert thebool
array into anint
array:您需要建立一系列位掩码(BIT0 到 BIT31,例如 2^0 和 2^32),然后使用按位运算符对它们进行操作:
或者您可以使用 BitArray 进行操作:
阅读有关 BitArray 位于 MS Docs。
在 C/C++ 中,位掩码可以这样写:
You need to establish a series of bit masks (BIT0 to BIT31 e.g 2^0 and 2^32) then operate on them using bitwise operators:
or you can do it with BitArray's:
read more about BitArray's here at MS Docs.
In C/C++, you bitmask may be written like this:
这并不完全相同,但请检查此答案,它将布尔数组转换为字节:
Convert bool [] 到字节[]
This isn't the exact same but check this answer which converts an array of booleans to bytes:
Convert bool[] to byte[]