바이트 배열에서 단일 비트를 읽는 방법은 무엇입니까?
문제
문제는 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;
}
제휴하지 않습니다 StackOverflow