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으로