[Java] 2.2.4 비트 연산

출간일 2016년 11월 28일

판매가 2000원

형태 ebook

학습에 도움이 되시면 ebook을 구입하여 소장하시면 감사하겠습니다.

언제나 휴일 출판사의 수익금의 대부분은 아프리카에 기부하고 있습니다.


2.2.4 비트 연산

비트 연산은 비트 단위로 논리 연산을 수행하는 연산입니다.

 

비트 연산에는 비트 논리곱(&), 비트 논리합(|), 비트 상호 배제(^), 비트 부정(~)이 있습니다. 이 때 특정 자리의 비트가 1이면 참으로 취급하고 0이면 거짓으로 취급합니다.

 

비트 논리곱(&)은 비트 단위로 논리곱 연산을 합니다. 예를 들어 6&5를 하면 6은 이진수로 110, 5는 이진수로 101 이므로 6&5의 연산 결과는 이진수 100로 10진수 4입니다.

 

비트 논리합(|)은 비트 단위로 논리합 연산을 합니다. 예를 들어 6|5의 연산 결과는 이진수 111로 10진수 7입니다.

 

비트 상호 배제(^)는 둘이 같은 값이면 거짓이고 다른 값이면 참입니다. 예를 들어 6^5의 연산 결과는 이진수 011로 10진수 3입니다.

 

비트 부정(~)은 단항 연산으로 0인 자리는 1로 1인 자리는 0으로 바꿉니다. 즉 1진 보수를 취한 값입니다. 예를 들어 ~6를 수행하면 6은 이진수로 000…110으로 1진 보수를 취하면 111…001입니다. 이는 2진 보수 표기 방식에 의해 10진수 -7을 의미합니다.

참고로 어떤 수에 같은 수로 ^ 연산을 두 번 하면 원래 수가 되는 특징이 있어 간단한 보안에 사용할 수 있습니다. 이처럼 같은 키로 암호화와 복호화[1]에 사용하는 것을 대칭형 암호화라 합니다.

[1] 복호화란 암호화 상태의 데이터를 원래 데이터로 바꾸는 과정을 말합니다.