Do it! 자바프로그래밍 6일차

Elena·2022년 2월 18일

오늘은 비트연산자와 연습문제 풀이를 했다.
비트연산자는 비트 논리 연산자와 비트 이동 연산자가 있는데

비트 논리 연산자는 비트 단위로 &, |, ^, ~ 연산이 이루어진다.
&(AND)연산자는 두 개의 비트 값이 모두 1인경우에만 경과 값이 1 이된다.
|(OR)연산자는 비트 값이 하나라도 1이면 연산 결과 값이 1이 된다.
^(XOR)연산자는 같은 값이면 0, 다른 값이면 1이 된다.
~(반전)연산자는 비트 값을 0은 1로, 1은 0으로 바꾸는 연산자이다.
비트 이동 연산자는 <<, >>, >>> 이렇게 세가지가 있고 시프트(Shift) 연산자라고도 부른다.
<<시프트 연산자는 왼쪽으로 비트를 이동하는 연산자이다.
ex) int num =5;
num <<2
이 때 00000101을 두 비트만큼 왼쪽으로 이동해 00010100이 되고 이것은 즉 기존 값에 2ⁿ만큼 곱한다는 뜻이다. 따라서 5x2²=20이 된다.
'>>연산자'는 시프트 연산자를 오른쪽으로 비트를 이동시킨다.
ex)int num = 10;
num >> 2;
이때는 오른쪽으로 n비트 이동하면 기존 값을 2ⁿ만큼 나눈다. 위 경우 10/2² 이 되므로 결과 값이 2가 된다.
'>>>연산자'는 '>>연산자'와 동일하게 비트를 오른쪽으로 이동한다. 차이는 왼쪽에 채워지는 비트 값이 부호 비트와 상관 없이 무조건 0이 된다.

오늘은 연습 문제가 조금 있었는데 그걸 하면서 덕분에 연산자에 대해 조금은 익숙해진 것 같다. 특히 어제 기본 연산자를 하면서 배운 증가감소 연산자가 드디어 이해되었다.
인터넷에 검색을 해보니 생각보다 간단한 연산이었다. 어제 웬지 오늘 공부를 하면서 증가감소 연산자에 대해 이해할 수 있을 것 같은 예감이 있었는데^^

profile
一切唯心造

0개의 댓글