https://eel.is/c++draft/conv.integral


signed <-> unsigned면 중간 변환이 한번 더 들어가는데 이 규칙이 약간 복잡하니

signedness는 동일하다 가정합니다.


이 때 축소 형변환 규칙은 다음과 같습니다.


intN_t a를 intM_t b로 변환하면, (N > M) a를 2^M으로 나눈 나머지가 b여야 한다.


unsigned면 위쪽 비트 N - M개가 잘리는 거고

signed면 2의 보수 표현 기준상 부호 비트를 옮기는 과정이 들어가거나 말거나 할 것 같습니다.


어쨌든 2^M 으로 나눈 나머지 값 (상식적인 값)으로 변환한다는게 표준에 확실히 정해져 있다 보면 될 것 같습니다