在 C# 中从 BitArray 转换为 16 位无符号整数

use*_*938 3 c# asp.net int bit bitarray

BitArray bits=new BitArray(16); // size 16-bit
Run Code Online (Sandbox Code Playgroud)

有 bitArray,我想在 C# 中将此数组中的 16 位转换为无符号整数,我不能使用 copyto 进行转换,是否还有其他方法可以从 16-bitto 转换为UInt16

das*_*ght 6

你可以这样做:

UInt16 res = 0;
for (int i = 0 ; i < 16 ; i++) {
    if (bits[i]) {
        res |= (UInt16)(1 << i);
    }
}
Run Code Online (Sandbox Code Playgroud)

该算法一一检查16个最低有效位,并使用按位或运算设置结果的相应位。