TAKEAWAY 4.6 size_t에 대한 산술 연산을 수행할 때는 암묵적으로 % (SIZE_MAX+1)이 적용된다.
TAKEAWAY 4.7 부호 없는 타입에 대한 산술 연산 과정에서 오버플로가 발생하면 구간의 시작점으로 되돌아간다.
다시 말해 size_t 값이 SIZE_MAX + 1이면 0이 되고, 0 - 1의 결과는 SIZE_MAX가 된다.
- 연산자가 부호 없는 타입에 적용될 때는 이렇게 시작점으로 되돌아가는 현상이 발생한다. 예를 들어 size_t 타입에서 -1이란 값은 SIZE_MAX와 같다. 따라서 a에 -1을 더한 결과는 a + SIZE_MAX가 되고, 이 값은 구간의 시작점으로 되돌아가서 다음과 같은 결과가 나온다.
a + SIZE_MAX - (SIZE_MAX+1) = a - 1
/와 % 연산을 수행한 결과는 항상 피연산자보다 작거나 같다.
TAKEAWAY 4.8 부호 없는 타입에 대한 /와 % 연산의 결과는 항상 피연산자보다 작다.
따라서 다음도 성립한다.
TAKEAWAY 4.9 부호 없는 /와 % 연산에서는 오버플로가 발생하지 않는다.