<< 비트 왼쪽 시프트 연산자

expression1 << expression2

expression1expression2를 32비트 정수로 변환하고, expression1의 모든 비트를 expression2를 변환하여 나타나는 정수로 지정된 자릿수만큼 왼쪽으로 이동합니다. 이 연산을 수행한 결과 비어 있는 비트 위치는 0으로 채워지고 왼쪽 끝으로 이동된 비트는 제거됩니다. 값을 왼쪽으로 한 자리씩 이동하는 것은 산술적으로 2를 곱하는 것과 같습니다.

부동 소수점 숫자는 소수점 뒤의 숫자를 제거하여 정수로 변환됩니다. 양의 정수는 최대값이 4294967295 또는 0xFFFFFFFF인 부호 없는 16진수 값으로 변환되고, 최대값보다 큰 값은 변환될 때 32비트 값을 유지하기 위해 최상위 자릿수를 버립니다. 음수는 2의 보수 표기를 사용하여 최소값이 -2147483648 또는 0x800000000인 부호 없는 16진수 값으로 변환되고, 최소값보다 작은 값은 정밀도가 더 높은 2의 보수로 변환된 후 최상위 자릿수를 버립니다.

반환값은 부호 있는 2의 보수로 해석되므로 -2147483648에서 2147483647 범위의 정수가 됩니다.

지원 버전: ActionScript 1.0, Flash Lite 2.0

피연산자

expression1 : Number - 왼쪽으로 이동할 숫자 또는 표현식입니다.

expression2 : Number - 0~31 범위의 정수로 변환되는 숫자 또는 표현식입니다.

반환값

Number - 비트 연산 결과입니다.

예제

다음 예제에서는 정수 1이 왼쪽으로 10비트 이동합니다. x = 1 << 10 이 연산의 결과는 x = 1024입니다. 10진수 1은 이진수 1과 같고, 이진수 1을 왼쪽으로 10만큼 이동하면 이진수 10000000000이 되는데 이진수 10000000000은 10진수 1024와 같기 때문입니다. 다음 예제에서는 정수 7이 왼쪽으로 8비트 이동합니다. x = 7 << 8 이 연산의 결과는 x = 1792입니다. 10진수 7은 이진수 111과 같고, 이진수 111을 왼쪽으로 8만큼 이동하면 이진수 11100000000이 되는데 이진수 11100000000은 10진수 1792와 같기 때문입니다. 다음 예제를 계속 진행하면 비트가 왼쪽으로 두 자리 밀린 것을 확인할 수 있습니다.

// 이진수 2 == 0010 
// 이진수 8 == 1000 
trace(2 << 2); // 출력: 8 

참고 사항

>>= 비트 오른쪽 시프트 및 대입 연산자, >> 비트 오른쪽 시프트 연산자, <<= 비트 왼쪽 시프트 및 대입 연산자, >>> 부호 없는 비트 오른쪽 시프트 연산자, >>>= 부호 없는 비트 오른쪽 시프트 및 대입 연산자