Flash Lite 2 |
|||
| Flash Lite 2.x ActionScript 언어 참조 설명서 > ActionScript 언어 요소 > 연산자 > << 비트 왼쪽 시프트 연산자 | |||
expression1 << expression2
expression1 및 expression2를 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
>>= 비트 오른쪽 시프트 및 대입 연산자, >> 비트 오른쪽 시프트 연산자, <<= 비트 왼쪽 시프트 및 대입 연산자, >>> 부호 없는 비트 오른쪽 시프트 연산자, >>>= 부호 없는 비트 오른쪽 시프트 및 대입 연산자