자바 비트연산 예제

  • 0

자바 비트연산 예제

예를 들어 0110(소수점 6)은 첫 번째 및 네 번째 플래그가 지우기(0)이고 두 번째 및 세 번째 플래그가 설정된 네 개의 플래그 집합으로 간주될 수 있습니다(1). 세 번째 플래그는 비트 방향 및 세 번째 비트에서만 0이 있는 패턴을 사용하여 지울 수 있습니다. 0인 비트는 1이 되고 1인 비트는 0이 됩니다. 예를 들어 비트 OR는 두 비트 패턴의 길이를 동일하게 취하고 각 해당 비트 쌍에 대해 논리적 포함 OR 작업을 수행하는 이진 작업입니다. 두 비트가 모두 0인 경우 각 위치의 결과는 0이며 그렇지 않으면 결과는 1입니다. 예: 위에서 설명한 대로 (x 및 (x – 1))는 x에서 가장 오른쪽 1을 제외한 모든 비트가 x와 같습니다. 따라서 xOR과 (x 및 (x-1))의 비트 xOR을 수행하면 가장 오른쪽 1을 반환합니다. 예제를 살펴보겠습니다. x = 10 = (1010)2 ` x & (x-1) = (1010)2 및 (1001)2 = (1000)2 x ^ (x & (x-1)) = = (1000)2 = (0010)2 파스칼에서, 모든 방언(예: 오브젝트 파스칼 및 스탠다드 파스칼)에서 왼쪽 및 오른쪽 시프트 연산자는 „shl” 및 „shr”입니다. 각각. 이동할 장소 수는 두 번째 인수로 지정됩니다. 예를 들어, 다음 은 y를 왼쪽으로 두 비트로 이동한 결과를 x로 할당합니다.

예를 들어 다음 배열의 각 연속 된 숫자는 한 비트로 회전합니다: 서명되지 않은 정수의 경우 숫자의 비트별 보완은 부호 없는 정수 범위의 중간 지점에서 숫자의 „미러 반사”입니다. 예를 들어, 8비트 서명되지 않은 정수의 경우 NOT x = 255 – x는 그래프에서 0에서 255까지의 증가 범위를 255에서 0으로 줄이는 범위를 효과적으로 „뒤집는” 하향 선으로 시각화할 수 있습니다. 간단하지만 예시적인 사용 예는 각 픽셀이 부호 없는 정수로 저장되는 그레이스케일 이미지를 반전시키는 것입니다. 이러한 예제에서는 명확하지 않을 수도 있지만 (x-1)의 이진 표현은 모든 비트를 x에서 가장 오른쪽 1의 오른쪽으로 넘기고 오른쪽 1을 포함하여 얻을 수 있습니다.