Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何读取字节数组中的单个位?_C#_.net_Arrays_Byte_Bit - Fatal编程技术网

C# 如何读取字节数组中的单个位?

C# 如何读取字节数组中的单个位?,c#,.net,arrays,byte,bit,C#,.net,Arrays,Byte,Bit,问题是我有一个包含200个索引的字节数组,只想检查MyArray[75]的第四位是零(0)还是一(1) 元素75中的第四位 if((MyArray[75] & 8) > 0) // bit is on else // bit is off &运算符允许您将值用作掩码 xxxxxxxx = ? 00001000 = 8 & ---------------- 0000?000 = 0 | 8 您可以使用此方法使用相同的技术收集任何位值 1 = 00000001 2

问题是我有一个包含200个索引的字节数组,只想检查MyArray[75]的第四位是零(0)还是一(1)


元素75中的第四位

if((MyArray[75] & 8) > 0) // bit is on
else // bit is off
&运算符允许您将值用作掩码

xxxxxxxx = ?
00001000 = 8 &
----------------
0000?000 = 0 | 8
您可以使用此方法使用相同的技术收集任何位值

1   = 00000001
2   = 00000010
4   = 00000100
8   = 00001000
16  = 00010000
32  = 00100000
64  = 01000000
128 = 10000000
比如:

if ( (MyArray[75] & (1 << 3)) != 0)
{
   // it was a 1
}
if((MyArray[75]&(1
private-bool-BitCheck)(字节b,int-pos)
{
返回(b&(10;
}

实际上8是第三位,第三位是第四位:)(第0位是第一位)好吧,这取决于他所说的“第四位”是什么意思,不是吗?:-)不,8是从最低有效端算起的第四位。或者,如果你想从最高有效端算起的话,第五位。考虑到他在问这个问题,这是一个非常安全的假设,他没有使用第零位。不管怎样,我想他会有足够的信息来找出他的问题的答案或者你说的“第四位”是什么意思第3位还是第4位?你一直在使用“^运算符。我不认为它的意思是你认为它的意思。^是按位排他性的还是没有权力的?我想泰勒的意思是你可能在寻找
1。我做了mpbloch的替换并取消了否决票。坦克似乎是新来的,所以我想我可以自由了。
if ( (MyArray[75] & (1 << 3)) != 0)
{
   // it was a 1
}
    private bool BitCheck(byte b, int pos)
    {
        return (b & (1 << (pos-1))) > 0;
    }