모두의 코드 커뮤니티

Modulo 관련 질문드립니다

안녕하세요. 이번에 갑자기 C언어에 대한 지식이 전혀 없는 상태로 수업을 듣게 되서
급하게 이 사이트를 통해서 공부하고 있습니다.

다름이 아니라, 아래의 문제를 풀고 있는데
int i;
unsigned short product = 1;
for (i = 1; i <11; i ++)
product * = i;

10!를 구하라는 의미는 알겠는데 이게 unsigned short 범위 때문에 0~65535이 넘어가면
modulo 계산해서 답을 구하더라구요.
이렇게 구한다는 건 이제 알겠는데 왜 범위가 넘어가면 modulo를 사용하는지
어떤 의미를 가지고 있는지 궁금합니다.
검색해봐도 modulo는 그냥 수를 나눈 나머지이다. 이렇게만 나와서 질문드립니다.
답변해주시면 감사하겠습니다.

1 Like

short 는 최대 2 바이트 까지 데이터를 보관하는데 그 위로 넘어간 비트들은 그냥 짤리게 됩니다. 덕분에 마치 modulo 를 하는 듯한 효과를 낼 수 있습니다.