Skip to main content

Bitwise 운영자는 무엇입니까?

computer 컴퓨터 프로그램에서 Bitwise 연산자는 표현식에서 비트 패턴을 조작하기위한 연산자입니다.비트와, 또는 독점적 또는 (XOR), 오른쪽 이동 및 왼쪽 시프트는 일반적인 작업입니다.대부분의 컴퓨터 프로그래밍 언어에는 6 개의 사업자가 모두 포함됩니다.컴퓨터 하드웨어를 제어하는 프로그램에서 개별 비트를 설정, 청소 또는 뒤집는 데 종종 사용됩니다.Bitwise Operator는 또한 데이터 암호화 및 압축 알고리즘에 자주 사용됩니다.

일반적인 Bitwise 연산자는 일반적으로 C, C ++ 및 Java와 같은 프로그래밍 언어로 상징적으로 표시됩니다.플러스 또는 마이너스 부호와 같은 산술 연산자와 마찬가지로 표현식에 사용됩니다.비트 타이어 운영자이며 앰퍼 랜드

또는 파이프 | 및 XOR로 표시됩니다.보체 연산자라고도하는 것은 아닙니다.Orgil 오른쪽 시프트 연산자는 오른쪽을 가리키는 이중 카렛을 사용합니다.대조적으로, 왼쪽 시프트는 왼쪽 포인트 이중 카렛 로 표시됩니다.Java에는 오른쪽 포인팅 트리플 카렛

비트 시대 연산자가 오페라의 각 비트 쌍에 논리적 작업을 적용합니다.오른쪽 시프트와 왼쪽 시프트에는 하나의 진정한 피연산자가 있습니다.시프트 작업의 두 번째 값은 비트 수입니다.비트 연산자의 작동 방식을 더 잘 이해하기 위해 개인은 피연산자를 이진 숫자로 시각화 할 수 있습니다.예를 들어, 보체 운영자는 단일 피연산자의 각 비트를 반대쪽 상태로 뒤집습니다.하나는 0이되고 0은 하나가됩니다.8 비트 이진 값 00110101의 보완은 11001010입니다.조금씩, 논리적 및 작동은 각 피연산자로부터 하나의 해당 비트를 사용하여 수행됩니다.각 비트 작동의 결과는 전체 결과의 비트 위치에 배치됩니다.예를 들어, 및 연산자는 하나의 피연산자 중 비트 7을 다른 피연산자 중 비트 7로 처리합니다.결과는 전체 결과의 비트 7에 저장됩니다.AN 및 작동에서 결과는 결과가 하나가 되려면 두 피연산자 비트 여야합니다. 그렇지 않으면 결과는 0입니다.예를 들어, 피연산자의 8 비트 바이너리 값이 00110101 및 11110000 인 경우 결과는 00110000입니다. 일반적인 사용은 결과에서 특정 비트를 제로화하는 것입니다.이것은 피연산자 중 하나에 비트 위치에 제로를 배치하여 수행됩니다. OR 작동에서, 결과가 0이 되려면 두 피연산자 비트가 0이어야합니다.그렇지 않으면 결과는 하나입니다.OR 연산자의 일반적인 사용은 결과의 특정 비트를 결과에 설정하는 것입니다.이것은 피연산자 중 하나에 비트 위치에 배치하여 수행됩니다.XOR 작동의 경우, 두 피연산자 비트가 모두 0이거나 피연산자 비트가 모두 1 mdash 인 경우 결과는 0입니다. 그렇지 않으면 결과는 하나입니다.비트 위치.논리적 오른쪽 시프트는 시프트의 일부로 0을 가장 왼쪽으로 움직입니다.산술 오른쪽 시프트는 교대 후 동일한 위치로 이동하기 전에 가장 왼쪽 비트 mdash; 부호 비트 mdash를 복사합니다.원래 비트도 나머지와 함께 바로 이동됩니다.어느 한 유형의 왼쪽 시프트가 가장 오른쪽 비트로 움직입니다. << 피연산자가 오른쪽으로 이동할 때, 시프트 전에 가장 오른쪽 비트는 단순히 버려집니다.마찬가지로, 왼쪽 시프트 전 가장 왼쪽 비트가 배치됩니다.그것은 피연산자의 다른 쪽 끝으로 감싸지 않습니다. 비트 시프트 작업은 언어 및 구현에 따라 다릅니다.예를 들어, C 및 C ++에서,

는 오페라가 서명되지 않은 정수 인 경우 논리적 변속을 수행합니다.피연산자가 서명 된 정수 인 경우, 대신 산술 이동이 수행 될 가능성이 높습니다.Java에서는 모든 피연산자가 서명 된 것으로 간주되며 산술 이동은 다음과 같습니다.항상 <<로 수행됩니다. 연산자는 논리적 권리 교대에 사용되지만, 신중한 타입 캐스팅없이 실수로 산술 오른쪽 이동을 수행하는 것은 여전히 가능합니다. 피연산자가 비트 길이가 다르거나 일부가 서명하고 서명 할 때도 합병증이 발생할 수 있습니다.일부는 서명되지 않았습니다.복잡한 표현의 중간에있는 비트 타이어 운영자 및 숫자 상수는 예상대로 평가되지 않을 수 있습니다.표현식에서 각 수량의 크기 및 서명/서명 된 특성을 지정하려면주의를 기울여야합니다.이것은 프로그램 코드의 특정 변수 유형에 대한 신중한 타입 캐스팅 또는 중간 할당으로 수행 할 수 있습니다.