Movatterモバイル変換


[0]ホーム

URL:


  1. 개발자를 위한 웹 기술
  2. JavaScript
  3. JavaScript 참고서
  4. 식 및 연산자
  5. 왼쪽 시프트 (<<)

This page was translated from English by the community.Learn more and join the MDN Web Docs community.

View in EnglishAlways switch to English

왼쪽 시프트 (<<)

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2015년 7월⁩.

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

시도해 보기

const a = 5; // 00000000000000000000000000000101const b = 2; // 00000000000000000000000000000010console.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® 2026 Language Specification
# sec-left-shift-operator

브라우저 호환성

같이 보기

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp