|
C/C++에서 %는 나머지 연산자로서 아래와 같이 나머지를 구합니다.
int n=7;
int div=4;
int ret;
ret = n%div; //결과 ret값은 3
피제수(被除數)인 n을 제수(除數)인 div로 나눈 결과값의 정수부분을 몫으로 하고,
(피제수 - (몫 * 제수))의 결과값이 %연산 결과가 됩니다.
과정을 풀어서 쓰면 아래와 같이 됩니다.
int n=7;
int div=4;
int dret;
int ret;
dret = n/div; //C/C++에서 int 자료형에는 1.75를 넣을 수 없으므로 소수부분을 제외한 정수부분(1)만 dret에 들어감.
ret = n - (div * dret);
//위 두줄을 하나로 쓰면, ret = n - ( div * (n/div) );
%연산 결과 부호는 곱셈/나눗셈과 달리 피제수의 부호만을 따릅니다.
마지막으로, %연산은 정수에 대해서만 할 수 있습니다.
round robin 방식
dream7kr 님이 쓰신 글 :
: i%4 같은 연산자에대해서 질문입니다..
:
: winapi 이있는 소스보고있었는데요
:
: i % 4 같은 어떻게 계산해야하는지을 모르겠네요..-_-;
:
: 나머지 연산자가 남는다고 들었는데
:
: 아무리 계산해도 5도 나오더라구요..ㅡ.ㅡ; 3까지만 나오고 그이상은 안나오다고 하는데
:
: 저는 아무리해도 나오더라구요..어떻게 계산해야하나요??
:
: 2 / 4 을 하면 0.5 가 나오잖아요..그러면 이 5 가 선택되는거 아닌가요??
:
: -------
: #include<stdio.h>
: #include<conio.h>
: #include<stdlib.h>
: #include<dos.h>
: void main()
: {
: int i=0;
: clrscr();
: for (i=1;i<40;i++)
: {
: gotoxy(35,10);
: switch(i%4){ /* 이거입니다...ㅡ.ㅡ; 모르겠어요 */
: case 0:puts("----------");
: break;
: case 1:puts("//////////");
: break;
: case 2:puts("||||||||||");
: break;
: case 3:puts("\\\\\\\\\\");
: break;
: }
: delay(10000);
: }
: }
: ----------
|