값을 삽입하려면 마스크를 사용하여 주어진 색상 채널에 해당하는 픽셀의 8 비트를 지우십시오. 예를 들어, 빨강의 경우 16 비트 왼쪽의 8 비트 마스크를 이동하고 (~ 연산자를 사용하여) 반전하고 "and"(&)이 마스크를 RGB 값과 함께 사용하면 8 비트가 지워집니다 빨강의 다른 비트를 변경하지 않고 남겨 둡니다. 그런 다음 매개 변수 값 (이 경우 빨간색)을 동일한 비트 수 (빨간색의 경우 16)로두고 시프트 된 값을 픽셀 값으로 "or"(|) 이동하십시오.비트 쉬프트 java
int getRed(){
red = (Pixel>>16);
red = ~Pixel;
red = Pixel<<16 | Pixel;
return red;
}
지시 사항에 따라 내가 뭘 잘못하고 있니?
다음 작업에서'red' 값을 다시 사용해야합니다.'red'는'Pixel'의 어떤 연산에서 항상 할당되기 때문에, 당신은 3 개의 연산을 누적하지 않고 단지 3 개의 독립적 인 연산을 수행합니다. – jtahlborn
세 가지 다른 값을 "red"에 지정합니다. 첫 번째와 두 번째 결과는 세 번째 결과와 겹치기 때문에 얻을 수있는 유일한 결과입니다. –