티스토리 뷰
언젠가 분명히 배웠지만, 별로 안중요한 것 같아서 소홀히 했던 비트 연산자를 복기해보자. (코딩 테스트 대비..)
비트 논리 연산자 (&, |, ^, ~)
& : AND (논리곱)
두 비트 모두 1일때만 1
| : OR (논리합)
두 비트 모두 0일때만 0 (나머지는 다 1)
^ : XOR(배타적 논리합)
: 두 비트가 같으면 0, (1 ^ 1 = 0, 1 ^ 0 = 1, 0 ^ 0 = 0)
! : NOT (논리 부정)
: 보수 ( 1 → 0, 0 → 1)
그냥 이런식으로 쓰면 된다.
public static void main(String[] args) {
System.out.println("45 & 25 = " + (45 & 25));
System.out.println("45 | 25 = " + (45 | 25));
}
실행 결과
지금까지는 뭐.. 안중요할 것 같고
비트 이동 연산자 ( <<, >>, >>> )
언젠가 알고리즘 문제를 봤는데 비트 이동을 이용한 문제여서 손도 못대봤다. 비트 마스킹이었나...
a << b
정수 a의 각 비트를 b만큼 왼쪽으로 이동. 빈자리는 0으로 채워짐.
a >> b
b만큼 오른쪽으로 이동. 빈자리는 정수 a의 MSB(최상위 부호 비트)와 같은 값으로 채워짐.
a >>> b
b만큼 오른쪽으로 이동. 빈자리는 0으로 채워짐
System.out.println("1 << 3 = " + (1 << 3));
잘 나오는 구만.
막상 보니 별로 안중요한거 같기도하다. 조만간 비트 건드려야하는 알고리즘 문제 풀어서 올려야겠다.
'기본 지식' 카테고리의 다른 글
[Spring] Active profiles 변경 (0) | 2023.03.16 |
---|---|
[AWS] EC2 HostName 변경하기 (0) | 2023.03.04 |
[AWS] Spring 프로젝트에 Code Deploy 적용하기 (0) | 2023.03.04 |
[AWS] Code Deploy 설정하기 (0) | 2023.03.03 |
[Linux] IO Redirection (0) | 2023.02.06 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- hoppy
- 소셜로그인
- 안드로이드
- Test
- dijkstra
- Java
- Singleton
- configuration
- mybatis
- REST
- BeanDefinition
- TopologicalSort
- 알고리즘
- 자료구조
- S3
- xml
- aws
- IntelliJ
- C++
- 위상정렬
- codedeploy
- Spring
- solid
- API
- db
- HTTP
- Android
- Network
- Programming
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함