2016/07/10 - [컴퓨터/Java] - 5 자바 Java의 연산자
안녕하세요~ 오늘은 지난시간에 연산자를 배웠던 것에 이어 비트 연산자를 배워보도록 하겠습니다 컴퓨터는 2진수를 기반으로 데이터를 저장하고 연산을 진행합니다 2진수는 0과 1로 표현되는 수로 만약 int num = 93 을 저장했으면 컴퓨터에는 이런 식으로 저장이 되죠.
0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 1 |
512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
그리고 저 한 숫자는 데이터를 표현하는 단위로 비트라고 불린답니다.
10010111101<- 이 2진수 한 단위가 비트이고
10010111101<-비트가 8개 모인 것이 바이트입니다.
~ 연산자
~ 연산자는 비트를 0이면 1로 1이면 0으로 반전시킵니다.
int num1 = 9;
int num2 = ~num1;
에서 num2 의 값을 계산해봅시다
num1 = 00000000 00000000 00000000 00001001
> num2 = 11111111 11111111 11111111 11110110
& 연산자
&연산자는 두 비트 모두 1일때 1을 반환하는 연산자입니다
int num1 = 9;
int num2 = 15;
int num3 = num1 & num2;
에서 num3의 값을 계산해보면
num1 = 0000 1001
& num2 = 0000 1111
> num3 = 0000 1001
따라서 num3 의 값은 9가 되겠죠?
| 연산자
| 연산자는 두 비트 중 하나라도 1이면 1을 반환하는 연산자입니다
int num1 = 9;
int num2 = 15;
int num3 = num1 | num2;
에서 num3의 값을 계산해봅시다
num1 = 0000 1001
| num2 = 0000 1111
> num3 = 0000 1111
이렇게 15가 나오져
^ 연산자
^ 연산자는 두 비트가 다를때 1을 반환하는 연산자입니다
int num1 = 9;
int num2 = 15;
에서 num3의 값을 계산해보면
num1 = 0000 1001
^ num2 = 0000 1111
> num3 = 0000 0110
이렇게 6이 나옵니다
<< 연산자
<< 와 >> 연산자는 shift 연산자라고도 불리는데요 자바에서는 >>>도 사용합니다! << 연산자는 비트를 왼쪽으로 움직이게 해주는 연산자입니다
int num1 = 9;
num1 = num1 << 2;
num1 = 0000 1001
> num1 = 0010 0100
따라서 num1의 값은 9에 2의 2승을 곱한, 즉 9에 4를 곱한 36으로 바뀌게 됩니다
>> 연산자
>> 연산자는 비트를 오른쪽으로 사라지게 해주는 연산자입니다
int num1 = 9;
num1 = num1 >> 2;
num1 = 0000 1001
이 연산자는 비트를 오른쪽으로 이동시켜주는 연산자입니다 하지만 이 연산자는 위의 >>연산자와 달리 이동으로 빈 공간을 모두 0으로 채우기 때문에 음수의 경우에는 저 위의 >>연산자를 써야 해요!
int num1 = 9;
num1 = num1 >>> 2;
num1 = 0000 1001
int num1 = -9;
num1 = num1 >>> 2;
1073741821
int num1 = 9;
num1 = num1 >>> 2;
-3
따라서 음수일 때는 이렇게 사용해 주시면 되요
모르는 것은 댓글이나 쪽지로 남겨주시면 성심 성의껏 답변해드리겠습니다!! 댓글, 공감, 구독(이웃추가)는 블로거에게 큰 힘이 됩니다! 부탁드리면서 이번 포스팅을 마치도록 하겠습니다! 지금까지 딘또였습니다.
'Develop > Java' 카테고리의 다른 글
8 자바 Java 의 반복문 (0) | 2016.08.27 |
---|---|
7 자바 Java 의 조건문! (0) | 2016.07.10 |
5 자바 Java의 연산자 (0) | 2016.07.10 |
4 자바 Java 의 형 변환 (0) | 2016.07.08 |
3 자바 Java 자료형과 변수! (0) | 2016.07.07 |
댓글