1. 개요
0xff 는 16진수 시스템(밑수 16)으로 표현되는 숫자입니다. 16진수로 된 두 개의 F 숫자로 구성됩니다. 우리가 알다시피,16진수의 F 는 이진수 시스템의 1111과 같습니다. 따라서 이진법으로 0xff 는 11111111입니다.
이 기사에서는 0xff 값 을 사용하는 방법을 알아보겠습니다 . 또한 여러 데이터 유형을 사용하여 표현하는 방법과 & 연산자 와 함께 사용하는 방법을 살펴보겠습니다 . 마지막으로 사용과 관련된 몇 가지 이점을 검토합니다.
2. 다른 데이터 유형으로 0xff 표현하기
Java에서는 0x 접두사와 정수 리터럴 을 사용하여 16진수(16진수)로 해석되는 숫자를 정의할 수 있습니다.
0xff 값 은 부호 없는 십진수의 경우 255, 부호 있는 십진수의 경우 -127, 이진수의 경우 11111111에 해당합니다.
우리가 정의한다면, INT의 값과 변수 를 0xFF , 이후 자바 32 비트를 이용하여 정수의 숫자를 나타내고 , 값 은 0xFF은 255이다 :
int x = 0xff;
assertEquals(255, x);
그러나, 우리는 정의하면 바이트 값과 변수 를 0xFF , 자바는 8 비트를 이용하여 바이트를 나타내며 바이트 서명 데이터 형식이므로 이후 , 의 값 은 0xFF가 -1 :
byte y = (byte) 0xff;
assertEquals(-1, y);
보시다시피 0xff 값 으로 바이트 변수를 정의할 때 바이트 데이터 유형 의 범위 가 -128 ~ 127 이므로 바이트 로 다운캐스트해야 합니다 .
3. & 0xff 연산 의 일반적인 사용법
및 운영자가 행하는 비트 단위 AND 연산 . 비트 AND의 출력은 두 피연산자의 해당 비트가 1이면 1입니다. 반면에 피연산자 중 하나의 비트가 0이면 해당 비트의 결과는 0으로 평가됩니다.
0xff 는 마지막 8비트 에 8개의 1이 있기 때문에 비트 AND 연산을 위한 ID 요소가 됩니다 . 우리가 적용한다면, X & 0xff의 작업을, 그것에서 우리에게 가장 낮은 8 개 비트를 줄 것이다 X . 숫자 x 가 255보다 작더라도 여전히 동일합니다. 그렇지 않으면 x 에서 가장 낮은 8비트가 됩니다 .
일반적으로 & 0xff 연산은 숫자에서 가장 낮은 8비트를 추출하는 간단한 방법을 제공합니다 . 가장 낮은 비트가 되고자 하는 8비트를 오른쪽으로 이동할 수 있기 때문에 실제로 필요한 8비트를 추출하는 데 사용할 수 있습니다. 그런 다음 & 0xff 연산 을 적용하여 추출할 수 있습니다 .
& 0xff 를 사용하여 얻을 수 있는 이점을 좀 더 자세히 설명하는 예를 살펴보겠습니다 .
4. & 0xff를 사용하여 RGBA 색좌표 추출하기
RGBA 시스템의 색상을 나타내는 32비트에 저장된 정수 x 가 있다고 가정해 보겠습니다. 즉, 각 매개변수(R, G, B 및 A)에 대해 8비트가 있음을 의미합니다.
- R = 16(2진수로 00010000)
- G = 57(2진수로 00111001)
- B = 168(2진수로 10101000)
- A = 7(2진수로 00000111)
따라서 x 는 2진법으로 00010000 00111001 10101000 00000111로 표시됩니다. 이는 십진수로 272214023과 같습니다.
이제 x 값이 10진수로 되어 있고 각 매개변수의 값을 추출하려고 합니다.
알다시피 >> 연산은 비트를 오른쪽으로 이동합니다. 따라서 (10000000 00000000 >> 8)을 수행하면 10000000 이 됩니다. 결과적으로 각 매개변수의 값을 추출할 수 있습니다 .
int rgba = 272214023;
int r = rgba >> 24 & 0xff;
assertEquals(16, r);
int g = rgba >> 16 & 0xff;
assertEquals(57, g);
int b = rgba >> 8 & 0xff;
assertEquals(168, b);
int a = rgba & 0xff;
assertEquals(7, a);
5. 결론
이 사용방법(예제)에서는 & 0xff 연산이 마지막 8비트의 값만 남기고 나머지 비트는 무시하는 방식으로 변수를 효과적으로 나누는 방법에 대해 논의했습니다 . 우리가 보았듯이 이 작업은 변수를 오른쪽으로 이동하고 이동된 비트를 추출해야 할 때 특히 유용합니다.