C언어 n % 2와 n & 2 연산 속도 비교 해보기

ino5·2022년 7월 7일

갑자기 궁금해져서 비교해봄..
결과는 비슷했다. 이정도는 너무 간단해서 컴파일러가 무조건 최적화해줄 것 같긴 했다.

#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초

profile
지금은 네이버 블로그만 해요... https://blog.naver.com/chero77

0개의 댓글