논리 회로
2진수를 1비트 왼쪽으로 시프트하면 값은 어떻게 됩니까? (자리 넘침이 없는 경우)
- A2배가 된다
- B절반이 된다
- C1만큼 늘어난다
정답과 해설 보기
정답: A. 2배가 된다
2진수에서는 각 자리가 2배씩의 가중치를 가지므로, 1비트 왼쪽으로 시프트하고 최하위에 0을 넣으면 값은 2배, 오른쪽으로 시프트하면 절반(버림)이 됩니다. n비트 시프트는 2ⁿ배·1/2ⁿ입니다. 곱셈·나눗셈기보다 훨씬 작고 빠르기 때문에 컴파일러는 x × 8을 x << 3으로 바꿉니다. 부호 있는 수의 오른쪽 시프트에서는 부호 비트를 복제하는 산술 시프트를 쓰지 않으면 음수를 올바르게 나눌 수 없습니다.