C++ 개념 정리

34. C++ 곱셈 연산 나눗셈 연산 차이

CE : 하랑 2026. 2. 8. 15:27

 

곱셈(Multiplication)이 더 빠릅니다.

이유

(1) 하드웨어 수준에서 구현 차이:

- 현대 CPU에서는 곱셈 연산은 한두 클럭 사이클 내에 수행되도록 최적화되어 있습니다.

- 반면 나눗셈은 훨씬 복잡한 연산이며, 일반적으로 더 많은 사이클을 소모합니다 (보통 수십 사이클).

 

(2) 최적화 관점:

- 컴파일러도 나눗셈을 줄이기 위해 곱셈으로 바꾸려는 최적화를 시도할 수 있습니다.
예: x / 8 → x >> 3 또는 x * 0.125 (정수/부동소수점에 따라 다름)

#include <iostream>
#include <chrono>

int main() {
    const int N = 1e8;
    volatile int result = 0;

    auto start_mul = std::chrono::high_resolution_clock::now();
    for (int i = 1; i < N; ++i) result = i * 2;
    auto end_mul = std::chrono::high_resolution_clock::now();

    auto start_div = std::chrono::high_resolution_clock::now();
    for (int i = 1; i < N; ++i) result = i / 2;
    auto end_div = std::chrono::high_resolution_clock::now();

    std::cout << "곱셈 시간: "
              << std::chrono::duration<double>(end_mul - start_mul).count() << "초\n";
    std::cout << "나눗셈 시간: "
              << std::chrono::duration<double>(end_div - start_div).count() << "초\n";

    return 0;
}

 

'C++ 개념 정리' 카테고리의 다른 글

26. 비트 마스크 열거형(enum)  (0) 2026.02.08
25. 비트 연산자  (0) 2026.02.08
24. 정수  (0) 2026.02.01
23. IOCP  (0) 2026.01.31
22. Thread  (0) 2026.01.31