티스토리 뷰
비트 연산자 & 시프트 연산자
1. 비트연산자
논리곱 (and) &
각 비트를 비교하여 양쪽 모두 1이면 1, 아니면 0을 반환
A & B = C 일때
A=1 이고 B=1일 때 C 가 1
A=1 이고 B=0 이면 C는 0
A=0 이고 B=1 이면 C는 0
A=0 이고 B=0 이면 C는 0
논리합 (or) |
각 비트를 비교하여 어느 한쪽이 1이면 1, 모두 0일때 0
A | B = C 일때
A=1 이고 B=1일 때 C 가 1
A=1 이고 B=0 이면 C는 1
A=0 이고 B=1 이면 C는 1
A=0 이고 B=0 이면 C는 0
배타적 논리합 (xor) ^
각 비트를 비교하여 한쪽이 1이고 다른 한쪽이 0이면 1, 아니면 0을 반환한다
A^B = C 일때
A=1 이고 B=0 이면 C는 0
A=1 이고 B=0 이면 C는 1
A=0 이고 B=1 이면 C는 1
A=0 이고 B=0 이면 C는 0
1의 보수 표현 (not) ~
각 비트를 반전시킨 값을 반환함
A=0110110 일때
~A=1001001이다
2. 시프트 연산자
비트 열을 좌우로 지시한 만큼 이동시키는(shift) 연산자를 말합니다.
자바에는 >> ,<< 외에도 추가적으로 >>> 연산자가 있습니다.
왼쪽 시프트 연산자 <<
ex) 150 << 2 : 150의 이진값을 왼쪽으로 2칸 시프트
10010110 : 150
1001011000:600
왼쪽으로 두칸 밀리면서 생기는 빈칸은 0으로 채우고
데이터를 담는 자료형이 byte 타입이라면 왼쪽으로 밀린 2개의 비트는 삭제되고
01011000:88 이 되겠죠
오른쪽 시프트 연산자 >>
ex) 150 >> 2 : 150의 이진값을 오른쪽으로 2칸 시프트
10010110 -> 1110010110
11100101 이 됩니다.
오른쪽으로 2비트 이동 후 비게되는 왼쪽의 2개비트는 1로 채워지고 오른쪽에서 2비트 넘어간 부분은 삭제
따라서 결과는 아래가 됩니다.
단 무조건 왼쪽에 비는 부분이 1로 채워지는 것이 아니라 밀기전 최초 첫째라리 값(MSB)과 동일한 값으로 채워집니다.
논리 오른쪽 시프트 연산자 >>>
오른쪽으로 2비트 시프트 합니다.
밀리는 앞쪽 2비트를 무조건 0으로 채워넣습니다.
10010110 >> 2 -> 0010010110 -> 00100101
'Development > Java' 카테고리의 다른 글
예외처리(Exception) (0) | 2017.08.24 |
---|---|
컬렉션 프레임워크(Collection Framework) 란? (0) | 2017.08.08 |
JVM 메모리 구조 와 가비지 컬렉션(Garbage Collection) (0) | 2017.08.02 |
Static이란? (0) | 2017.08.02 |
JSP란? (0) | 2017.08.01 |
- Total
- Today
- Yesterday
- mac mariadb 설치
- spring boot org.springframework.beans.factory.BeanDefinitionStoreException
- 큐
- 알고리즘
- Stack
- mysql 세팅
- Data Structure
- mysql 데이터 타입
- 해시알고리즘
- mariadb데이터 타입
- springframewor
- HTTP
- 자료구조
- mac mariadb
- mysql데이터
- 스프링 부트 에러
- mac db설치
- mariadb 데이터타입
- 400 error
- 스택
- spring boot 시작 에러
- org.springframework.beans.factory.BeanDefinitionStoreException
- 400 badgateway
- mariadb
- 스프링 부트 시작 에러
- hash알고리즘
- hash algorithm
- 데크
- mariadb설치
- mysql데이터타입
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |