반응형
특정 비트를 바이트 단위로 설정
Java 바이트 변수에 비트를 설정하려고합니다. 그것은 같은 적절한 방법을 제공합니다 .setBit(i)
. 아무도 내가 이것을 어떻게 깨달을 수 있는지 알고 있습니까?
주어진 바이트를 비트 단위로 반복 할 수 있습니다.
if( (my_byte & (1 << i)) == 0 ){
}
그러나이 위치를 1 또는 0으로 설정할 수 없습니다.
비트 OR ( |
) 및 AND ( &
) 연산자를 사용합니다. 즉에서 비트를 설정하는 비트를 설정하는 방법 pos
에 1
:
my_byte = my_byte | (1 << pos); // longer version, or
my_byte |= 1 << bit; // shorthand
에 비트를 설정 해제, 또는에 켜십시오 0
:
my_byte = my_byte & ~(1 << pos); // longer version, or
my_byte &= ~(1 << bit); // shorthand
예제는 고급 Java / 비트 연산자를 참조하십시오.
조금 설정하려면 :
myByte |= 1 << bit;
지우려면 :
myByte &= ~(1 << bit);
Jon의 대답 과 driis 의 대답 을 보완하기 위해
약간 전환 (반전)하려면
myByte ^= 1 << bit;
필요한 기술은 선택한 비트를 분리하고 설정하거나 지우는 것입니다. 위에서 테스트하는 데 사용하고 있으므로 이미 비트를 분리하는 표현식이 있습니다. OR로 비트를 설정하거나 비트의 1의 보수로 비트 AND로 비트를 지울 수 있습니다.
boolean setBit;
my_byte = setBit
? myByte | (1 << i)
: myByte & ~(1 << i);
작업을 수행하는 클래스 java.util.BitSet을 참조하십시오.
설정하려면 : myByte.set(bit);
재설정하려면 : myByte.clear(bit);
부울을 채우 려면 : 부울 myByte.set(bit, b);
을 얻으려면 : b = myByte.get(bit);
비트 맵 을 가져옵니다 .byte bitMap = myByte.toByteArray()[0];
참고 URL : https://stackoverflow.com/questions/4674006/set-specific-bit-in-byte
반응형
'your programing' 카테고리의 다른 글
회계 응용 프로그램 달러 금액에 부동 소수점 또는 소수점을 사용합니까? (0) | 2020.10.15 |
---|---|
C # 가로 세로 비율을 유지하면서 다른 크기로 이미지 크기 조정 (0) | 2020.10.15 |
csproj를 사용하여 .NET Core 클래스 라이브러리를 어떻게 다중 대상으로 지정합니까? (0) | 2020.10.14 |
국가와 도시 (0) | 2020.10.14 |
숫자가 아닌 값을 포함하는 numpy.ndarray의 모든 행을 제거하는 방법 (0) | 2020.10.14 |