갑자기 궁금해져서 비교해봄..
결과는 비슷했다. 이정도는 너무 간단해서 컴파일러가 무조건 최적화해줄 것 같긴 했다.
#include <stdio.h>
#include <Windows.h>
#include <math.h>
int main() {
/* 시간 측정 변수 */
LARGE_INTEGER start, end, freq, ms;
double elapsed;
/* 변수 */
long long i;
int num = 99999; // 임의 숫자
long long nRun = 100LL * 10000LL * 10000LL; // 연산 횟수
/* 시간 측정 시작 */
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&start);
/* 연산 */
for (i = 0; i <nRun; i++) {
num & 1;
// num % 2;
}
/* 시간 측정 종료 */
QueryPerformanceCounter(&end);
ms.QuadPart = end.QuadPart - start.QuadPart;
elapsed = (double)ms.QuadPart / freq.QuadPart;
printf("%f", elapsed);
}
Dev-C++ 5.11 TDM-GCC 4.9.2 64-bit
num & 1 : 6.212408초
num % 2 : 6.211834초