왼쪽 시프트 (<<)

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

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

시도해보기

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

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

구문

js
a << b

설명

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

예를 들어, 9 << 2은 36이 도출됩니다.

     9 (10진수): 00000000000000000000000000001001 (2진수)
                  --------------------------------
9 << 2 (10진수): 00000000000000000000000000100100 (2진수) = 36 (10진수)

임의의 숫자 x를 왼쪽으로 y비트 단위로 이동하면 x * 2 ** y입니다. 그래서 예를 들어 9 << 39 * (2 ** 3) = 9 * (8) = 72으로 해석됩니다.

왼쪽 피연산자는 32비트 정수로 변환됩니다. 즉, 부동 소수점 숫자는 잘리고 32비트 경계 내에 있지 않은 숫자는 오버플로우/언더플로우됩니다.

오른쪽 피연산자는 부호 없는 32비트 정수로 변환된 다음 32 나머지 연산의 값을 가져오므로 실제 시프트 오프셋은 항상 0에서 31 사이의 양의 정수입니다. 예를 들어, 100 << 32100 << 0과 동일(이 결과값은 100입니다)합니다. 32 나머지 연산은 0이기 때문입니다.

예제

왼쪽 시프트 사용하기

js
9 << 3; // 72
// 9 * (2 ** 3) = 9 * (8) = 72

명세서

Specification
ECMAScript® 2025 Language Specification
# sec-left-shift-operator

브라우저 호환성

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
Bitwise left shift (a << b)

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

같이 보기