컴퓨터에서 왼쪽 시프트 연산(<<)은 이진수의 모든 비트를 왼쪽으로 한 칸 이동시킵니다. 이는 값에 2를 곱하는 것과 정확히 같습니다.
예를 들어, A << k는 A × 2k를 계산하는 가장 빠른 연산 방식입니다.
이 성질을 활용하면, 승수(B)를 이진수로 전개하여 1인 비트 위치만큼 피승수(A)를 왼쪽으로 시프트한 후 모두 더함으로써 곱셈(A × B)을 구현할 수 있습니다!
#include <stdio.h>
int main() {
int A = 5, B = 6;
int result = 0;
for (int i = 0; i < 4; i++) {
if ((B >> i) & 1) {
result += (A << i);
}
}
printf("Result: %d\n", result);
return 0;
}