BitArray bits=new BitArray(16); // size 16-bit
有bitArray,我想将16位从这个数组转换为c#中的无符号整数,
我无法使用copyto进行转换,还有其他方法可以从16-bit
转换为UInt16
吗?
答案 0 :(得分:4)
你可以这样做:
uint16 res = 0;
for (int i = 0 ; i != 16 ; i++) {
if (bits[i]) {
res |= (uint16)(1 << i);
}
}
该算法逐个检查16个最低有效位,并使用按位OR运算来设置结果的相应位。
答案 1 :(得分:0)
您可以遍历它并自行组合值。
var bits = new BitArray(16);
bits[1] = true;
var value = 0;
for (int i = 0; i < bits.Length; i++)
{
if (lBits[i])
{
value |= (1 << i);
}
}
答案 2 :(得分:0)
这应该完成工作
private uint BitArrayToUnSignedInt(BitArray bitArray)
{
ushort res = 0;
for(int i= bitArray.Length-1; i != 0;i--)
{
if (bitArray[i])
{
res = (ushort)(res + (ushort) Math.Pow(2, bitArray.Length- i -1));
}
}
return res;
}
答案 3 :(得分:-1)
你可以在该问题的stackoverflow中检查另一个anwser: