✔️이 글은 [자바의 신 - 이상민 지음] 도서를 바탕으로 정리한 글입니다.
bit와 byte에 대해 다시 한번 살펴보자
컴퓨터는 기본적으로 0과 1로 처리된다.
0과 1을 나타내는 것을 1bit라 하고 8개가 모여 1byte가 된다.
1byte로는 2x2x2x2x2x2x2x2가지의 표현이 가능해 총 256가지가 된다.
8비트를 4자리씩 끊으면 4비트 2개로 16진수 2개로 1바이트를 표현할 수 있다.
비트 연산자라는 것들은 뭘까?
CPU의 성능이 아주 느린 장비에 들어가는 프로그램을 작성하건, 암호화 작업과 관련된 작업을 할 때 아주 조금이라도 메모리를 줄이고 성능을 개선하기 위해서 비트 연산이 필요한 경우가 있다.
두 개의 숫자를 비교하는 비트 연산자들
- & : AND 연산
- | : OR 연산 (inclusive OR 연산이라고도 부름)
- ^ : XOR 연산 (exclusive OR 연산이라고도 부름)
비트 연산자 중 유일한 단항 연산자는 하나다
- ~ : unary 연산 (NOT 연산이라고도 부름)
음수가 표현된 2진수를 unary 연산자로 모든 비트를 바꾼 후 1을 더하면 동일한 값을 갖는 양수가 된다.
반대로, 양수로 표현된 2진수를 unary 연산자로 모든 비트를 바꾼 후 1을 더하면 동일한 절대값을 갖는 음수가 된다.
비트 위치를 이동하는 연산자를 살펴보자
- << : 왼쪽 이동
- >> : 오른쪽 이동
- >>> : 부호 상관 없는 (unsigned) 오른쪽 이동
<<은 비트값들은 왼쪽으로 한칸 씩 옮긴 후 빈 공간에 0을 채워준다.
>>은 비트값들을 오른쪽으로 한칸 씩 옮긴 후 빈 공간에 양수는 0을 채워주고 음수는 1을 채워준다.
>>>은 부호 값을 신경쓰지 않는 연산자로 음수인 경우에도 오른쪽으로 비트를 옮긴 후 0을 채워준다.
간략하게 비트 연산 수행하기
비트 연산자들도 &=, |= 처럼 간단하게 연산이 가능하다.
~은 단항 연산자라 간략화된 연산자 사용이 불가능하다.
728x90