BitArray bits=new BitArray(16); // size 16-bit这里有bitArray,我希望在c#中将这个数组中的16位转换为无符号整数,我不能使用版权来进行转换,还有其他从16-bit转换到UInt16的方法吗?
发布于 2013-12-17 15:32:53
你可以这样做:
UInt16 res = 0;
for (int i = 0 ; i < 16 ; i++) {
if (bits[i]) {
res |= (UInt16)(1 << i);
}
}该算法逐个检查16位最小有效位,并使用位或运算来设置结果的对应位。
发布于 2013-12-17 15:33:02
您可以循环遍历它并组合值本身。
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);
}
}发布于 2020-09-16 07:14:28
这应该能做好工作
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;
}https://stackoverflow.com/questions/20638107
复制相似问题