왼쪽시프트 (<<) 연산자

zin·2023년 7월 9일
1

프로그래머스 코테풀다가 알게된

왼쪽시프트연산자 <<

연산자는 첫 번째 피연산자를 명시된 비트 수(32의 나머지)만큼 왼쪽으로 이동합니다. 왼쪽으로 이동된 초과 비트는 폐기됩니다. 오른쪽은 움직인 비트 수 만큼 0비트로 채워집니다.

const a = 5;         // 00000000000000000000000000000101
const b = 2;         // 00000000000000000000000000000010

console.log(a << b); // 00000000000000000000000000010100
// Expected output: 20

a << b는 a을 b번 왼쪽으로 시프트하는 연산입니다.

왼쪽 시프트는 주어진 수를 이진수로 표현했을 때 각 비트를 b만큼 왼쪽으로 이동시키는 연산입니다.
이동된 비트 자리에는 0이 채워지고, 가장 오른쪽 비트는 사라지고,
주어진 수에 2의 b승을 곱하는 효과입니다.

그래서 결과값 20은,
임의의 숫자 x를 왼쪽으로 y비트 단위로 이동하면 a * 2 ** b 입니다. 그래서 5*(2**2) = (2의 2승은 4) 5*4=20

다른값도 이렇게 콘솔창에 써보니 이해 뚝딱,~!

9 * ( 2 ** 5 ) = 9 * (32) = 288

MDN 참조

profile
프론트엔드 가보자고-!

0개의 댓글