비트 연산으로 이해하는 2의 거듭제곱 - Math.Pow 대신 1 << n을 사용하는 이유
Math.Pow(2, n) 대신 1 을 쓰는 이유 알고리즘 문제를 풀다 보면 2ⁿ 형태의 값이 자주 등장한다.C#에서는 흔히 다음과 같이 작성하기 쉽다. int x = (int)Math.Pow(2, n); 하지만 이 경우, 더 적절한 표현은 다음이다. int x = 1 비트 관점에서의 의미 정수 1을 이진수로 표현하면 다음과 같다. 1 = 0001 왼쪽 시프트 연산()은 비트를 왼쪽으로 이동시키는 연산이다. 1 즉, 비트를 한 칸 이동할 때마다 값은 2배가 된다. 1 Math.Pow가 적절하지 않은 이유 - 부동소수점 연산 Math.Pow와 MathF.Pow는 각각 double, float 기반의 연산이다. Math.Pow(2, n) // doubleMathF.Pow(2, n) ..
개발기록/자료구조 & 알고리즘
2025. 12. 12. 14:33