C# 在c语言中从位数组转换为16位无符号整数#
有一个bitArray,我想把这个数组中的16位转换成c#中的无符号整数,C# 在c语言中从位数组转换为16位无符号整数#,c#,asp.net,int,bit,bitarray,C#,Asp.net,Int,Bit,Bitarray,有一个bitArray,我想把这个数组中的16位转换成c#中的无符号整数, 我不能使用copyto进行转换,是否有其他方法将16位转换为UInt16?您可以这样做: BitArray bits=new BitArray(16); // size 16-bit uint16 res=0; for(int i=0;i!=16;i++){ if(位[i]){ res |=(uint16)(1您可以循环遍历它并合成值本身 uint16 res = 0; for (int i = 0 ; i != 16
我不能使用copyto进行转换,是否有其他方法将
16位转换为UInt16
?您可以这样做:
BitArray bits=new BitArray(16); // size 16-bit
uint16 res=0;
for(int i=0;i!=16;i++){
if(位[i]){
res |=(uint16)(1您可以循环遍历它并合成值本身
uint16 res = 0;
for (int i = 0 ; i != 16 ; i++) {
if (bits[i]) {
res |= (uint16)(1 << i);
}
}
var位=新的位数组(16);
位[1]=真;
var值=0;
for(int i=0;i 值|=(1您可以检查该问题的另一个问题:
这应该可以完成这项工作
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);
}
}
这个例子使用COPYTO,他不能使用这个,正如问题res |=(1@user2922938哦,我忘了添加一个cast。这应该在编辑后生效。plz我是c的初学者,你能解释更多吗,什么是(cast)?@user2922938我在(uint16)
前面添加了(1
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;
}