Modular(%): 나머지를 구하는 연산자
Bit-wise AND(&): 논리적 AND 연산자
'&'가 '%'연산을 대체
k = 1011_0110
k % 16 = 0000_0110
k & 0x0F = 0000_0110
- 특수한 Case에서만 사용가능(2의 제곱)
- 연산 속도는 bit 연산이 5배 빠름
- Modular는 Library 사용
- Bit-wise는 ALU에서 바로 연산
Example
k의 값이 0, 1, 2, 3 을 반복하는 코드
int main(){
int k = 0;
while(1){
printf("%d", k++);
k = k & 3 ;
}
return 0;
}
10000, 1000, 100, 10 자리수 출력하는 코드
int k = 123456;
int main(){
int a, b, c, d;
a = (k / 10000) % 10;
b = (k / 1000) % 10;
c = (k / 100) % 10;
d = (k / 10) % 10;
printf("%d %d %d %d \n", a, b, c, d);
return 0;
}