문제

문제는 200 개의 인덱스가있는 바이트 배열이 있고 MyArray의 네 번째 비트 [75]는 0 (0) 또는 1 (1)임을 확인하고 싶다는 것입니다.

byte[] MyArray; //with 200 elements

//check the fourth BIT of  MyArray[75]
도움이 되었습니까?

해결책

요소 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
}

오른쪽에서 4 비트를 의미한다고 가정합니다.

그리고 당신은 체크 아웃하고 싶을 수도 있습니다 System.Collections.BitArray, 바퀴를 재창조하지 않도록하십시오.

    private bool BitCheck(byte b, int pos)
    {
        return (b & (1 << (pos-1))) > 0;
    }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top