모듈러 연산
엄밀한 정의는 더 복잡하지만, 정수의 모듈러 연산 는 대충 이렇게 정의할 수 있습니다.
0 | 1 | 0 | -1 | |
1 | 0 | -1 | 0 | |
0 | 2 | 0 | -2 | |
1 | 1 | -1 | -1 | |
0 | 0 | 0 | 0 | |
1 | 2 | -1 | -2 | |
0 | 1 | 0 | -1 | |
1 | 0 | -1 | 0 |
양수의 모듈러 연산은 C의 signed integer가 표현 범위를 벗어날 때의 동작과 같습니다.
나머지 연산
나머지 연산은 말 그대로 나머지 연산을 말합니다. 여기서 는 나눗셈의 몫 A / B입니다.
0 | 1 | 0 | 1 | |
1 | 0 | 1 | 0 | |
0 | 2 | 0 | 2 | |
1 | 1 | 1 | 1 | |
0 | 0 | 0 | 0 | |
-1 | -1 | -1 | -1 | |
0 | -2 | 0 | -2 | |
-1 | 0 | -1 | 0 |
차이
A와 B가 모두 양수일 때는 모듈러와 나머지가 같지만. 그 외의 경우에는 결과가 다릅니다.
A가 음수일 때도 는 또는 이 됩니다.
B가 음수일 때 는 와 같습니다.
A가 음수일 때 는 와 같습니다.
B가 음수일 때 는 와 같습니다.
같이 보기
int의 오버플로우가 위험한 이유 - unsigned int의 동작을 잠깐 다룹니다.