Study/JAVA
bit operator
so.so
2021. 2. 16. 00:47
-> 위의 그림과 같이 10진수의 수를 2진수로 표현하면 각각의 숫자들이 '0'과 '1'로 구성된 수로 변환됨
비트(bit)
-> '0'과 '1'로 구성된 하나의 자리
바이트(byte)
-> 8개의 bit가 모여서 '1'개의 바이트가 됨
논리 연산자
- AND -> &&
- OR -> ||
비트 연산자
- AND -> &
- OR -> |
- XOR -> ^
public class Main{
public static void main(String[] args){
int a = 183, b = 210;
System.out.format("%d & %d = %d\n", a, b, a & b);
System.out.format("%d | %d = %d\n", a, b, a | b);
System.out.format("%d ^ %d = %d\n", a, b, a ^ b);
}
}
Shift operator : >> , <<
>> : 오른쪽으로 1비트씩 옮기는 연산
- 이때, 마지막 자리를 넘어간 비트들은 제거됨
- 1칸씩 오른쪽으로 옮길 때마다, '2'를 나눈 것과 같은 결과값을 만들어냄
<< : 왼쪽으로 1비트씩 옮기는 연산
- 이때, 새롭게 생긴 마지막 자리는 '0'으로 채움
- 1칸씩 왼쪽으로 옮길 때마다, '2'를 곱한 것과 같은 결과값을 만들어냄
NOT operator : ~
: 주어진 수를 비트 형태로 표현한 상태에서 모든 비트의 값들을 다른 값으로 부정함
- 즉 바꾸어 버림
-> 0은 1로, 1은 0으로