자바(Java) - 비트 연산자

지원·2023년 8월 26일

Java Programming

목록 보기
6/25
post-thumbnail

비트(bit)와 바이트(byte)


  • 비트는 컴퓨터가 처리하는 정보의 최소 단위인데, 한 개만으로는 많은 양의 데이터를 나타내기에 턱없이 부족하므로 정보를 표현하는 기본 단위로는 8개의 비트를 묶은 바이트(Byte)를 사용한다.

  • 1 byte는 00000000 부터 11111111 까지 값을 표현할 수 있다.

  • 1 byte는 정수로 표현하면 0부터 254까지 표현 가능하다.

  • 1 byte를 16진수로 표현하면 00 부터 FF 까지 표현 가능하다. 4비트는 0부터 15까지 표현 가능하므로.


비트 연산자


  • 비트 연산자는 논리 연산자와 비슷하지만, 비트(bit) 단위로 논리 연산을 할 때 사용하는 연산자다.

  • 비트 연산자
    &, |, ^, ~, <<, >>, >>>

  • &는 and, |는 or, ^는 xor, ~는 not

  • <<는 좌측 시프트(shift), >>는 우측 시프트(shift), >>>는 우측 양수화 시프트

  • &, |, ^는 논리 연산자로도 사용된다.

  • 비트 연산자는 바이트를 구성하고 있는 bit를 연산하는 연산자이다.
    예시) &

    		00000000
    	 &  11111111
    	-------------
    		00000000

shift 연산자 예제

public class BitOperatorExam1 {
  public static void main(String[] args) {
    int a = 4;
    int b = a >> 1; // 2^1으로 나눈다.
    System.out.println(b);

    int c = 4;
    int d = c << 1; // 2^1을 곱한다.
    System.out.println(d);
  }
}
  • 실행결과
2
8
  • 왜?
    4를 >>1 하면

    	00000000 00000000 00000000 00000100 ( int 타입 4를 bit로 표현 )
    >> 1 ( 1만큼 하나 씩 오른쪽으로 비트가 밀리고, 왼쪽은 0으로 채운다.)
    -----------------------------------------
    	00000000 00000000 00000000 00000010 이므로 2가 나온다.

    4를 <<1 하면

    	00000000 00000000 00000000 00000100 ( int 타입 4를 bit로 표현 )
    >> 1 ( 1만큼 하나 씩 왼쪽으로 비트가 밀리고, 오른쪽은 0으로 채운다.)
    -----------------------------------------
    	00000000 00000000 00000000 00001000 이므로 8이 나온다.

>>>

  • 지정한 수만큼 비트를 전부 오른쪽으로 이동시키며, 가장 왼쪽은 무조건 0으로 채운다.

  • >>>는 그 결과 무조건 양수가 나온다.

  • 10000000 >>> 200100000가 된다.

  • 10000000은 음수, 00100000은 양수이다.

profile
우주 정복자

0개의 댓글