1. 몫 구하기
int half(n){
return n >> 1;
}
원리
- 1비트씩 오른쪽으로 밀면 나머지와 여부와 상관없이 몫이 도출된다.
전제
- >>1 연산은 1비트씩 오른쪽으로 미는 연산이다.
예시
- 7(0111) => 3(0011)
참고
- 가장 왼쪽에 있는 비트(MSB)는 0으로 채워진다.
- <<n 연산은 n비트씩 왼쪽으로 밀면서 0으로 채운다.
2. 홀수 구하기
boolean odd(n){
return n & 0x1
}
원리
- 최하위비트(LSB)와 비트 1을 &로 비교한다.
전제
- 홀수는 LSB가 1이고 짝수는 0이다.
- &연산은 좌변과 우변이 일치할 경우에만 1을 출력한다.
예시
1 & 1 = 1
0 & 1 = 0
'공부 이야기 > 그냥 찾아보는 공부' 카테고리의 다른 글
소수의 성질 1 - 메르센 소수 (0) | 2022.02.25 |
---|---|
에레토스테네스의 체 (0) | 2022.02.24 |
알고리즘 산책 : 수학에서 제네릭 프로그래밍 - <1> (0) | 2022.02.19 |
수학적 커뮤니케이션 이론 - <서론> (0) | 2021.08.21 |
Kafka Protocol로 이해하는 대규모 메시징 시스템 (0) | 2021.05.02 |