변수들은 Byte 단위로 저장된다. 즉, 8bit 단위로 저장된다.
가장 작은 char 변수도 1Byte, 8bit 로 저장된다.
앞서 다루었던 연산자들은 전부 변수 단위, Byte 단위의 연산자들이다.
여기서는 비트 단위의 연산자를 다루어 보겠다.
Byte단위 변수를 bit 단위로 표현하면 2진법으로 표현된다.
이후의 연산자는 2진법 연산용 연산자로 보아도 무방하다.
연산자 | 설명 | 구분 |
& | AND | 이항 |
| | OR | 이항 |
^ | XOR | 이항 |
~ | NOT | 단항 |
<< | 왼쪽 시프트 | 이항 |
>> | 오른쪽 시프트 | 이항 |
&= | AND 후 대입 | 이항 |
|= | OR후 대입 | 이항 |
^= | XOR후 대입 | 이항 |
<<= | 왼쪽 시프트 후 대입 | 이항 |
>>= | 오른쪽 시프트 후 대입 | 이항 |
논리연산을 기본으로 한다.
bit의 각 자리는 2^n을 나타내고 true(1) & false(0) 로 표현된다.
and 연산의 결과는 둘중 하나라도 false(0) 이면 false
or 연산의 결과는 둘중 하나라도 true(1) 이면 true
xor 연산의 결과는 둘이 다르면 true(1)
이고.
not 연산의 결과는 모든 bit가 반전된 결과이다. 즉, false(0) -> true(1) 로, true(1) -> false(0) 이다.
시프트 연산은 비트의 자리이동이다.
주어진 자리 수만큼 모든 비트를 왼쪽, 또는 오른쪽으로 이동한다.
주어진 자리 수를 n 이라 할때,
왼쪽 시프트는 연산할 변수에 2^n을 곱한 값이고,
오른쪽 시프트는 2^n을 나눈 값이다.
댓글