<< 연산자(Visual Basic)
비트 패턴에 산술 왼쪽 시프트를 수행합니다.
구문
result = pattern << amount
부분
result
필수입니다. 정수 숫자 값입니다. 비트 패턴을 시프트한 결과입니다. 데이터 형식은 pattern
의 데이터 형식과 동일합니다.
pattern
필수입니다. 정수 숫자 식입니다. 시프트할 비트 패턴입니다. 데이터 형식은 정수 형식(SByte
, Byte
, Short
, UShort
, Integer
, UInteger
, Long
또는 ULong
)이어야 합니다.
amount
필수입니다. 숫자 식입니다. 비트 패턴을 시프트할 비트 수입니다. 데이터 형식은 Integer
이거나 Integer
로 확장되어야 합니다.
설명
산술 시프트는 원형이 아니으므로 결과의 한쪽 끝에서 이동된 비트가 다른 쪽 끝에서 다시 도입되지 않습니다. 산술 왼쪽 시프트에서는 결과 데이터 형식의 범위를 벗어나 이동된 비트는 폐기되고 오른쪽에 비어 있는 비트 위치는 0으로 설정됩니다.
결과보다 더 많은 비트로 이동하지 않도록 Visual Basic은 pattern
의 데이터 형식에 해당하는 크기 마스크를 사용하여 amount
의 값을 마스크합니다. 이러한 값의 이진 AND는 시프트 양에 사용됩니다. 크기 마스크는 다음과 같습니다.
pattern 의 데이터 형식 |
크기 마스크(10진수) | 크기 마스크(16진수) |
---|---|---|
SByte , Byte |
7 | &H00000007 |
Short , UShort |
15 | &H0000000F |
Integer , UInteger |
31 | &H0000001F |
Long , ULong |
63 | &H0000003F |
amount
가 0이면 result
의 값이 pattern
의 값과 동일합니다. amount
가 음수이면 부호 없는 값으로 사용되며 적절한 크기 마스크로 마스크됩니다.
산술 시프트는 오버플로 예외를 생성하지 않습니다.
참고 항목
<<
연산자는 오버로드될 수 있습니다. 즉, 피연산자가 해당 클래스 또는 구조체 형식을 가질 때 클래스 또는 구조체의 동작을 재정의할 수 있습니다. 코드에서 이러한 클래스 또는 구조체에서 이 연산자를 사용하는 경우 다시 정의된 동작을 이해해야 합니다. 자세한 내용은 Operator Procedures을 참조하세요.
예시
다음 예제에서는 <<
연산자를 사용하여 정수 값에 대한 산술 왼쪽 시프트를 수행합니다. 결과는 항상 시프트되는 식의 데이터 형식과 동일합니다.
Dim pattern As Short = 192
' The bit pattern is 0000 0000 1100 0000.
Dim result1, result2, result3, result4, result5 As Short
result1 = pattern << 0
result2 = pattern << 4
result3 = pattern << 9
result4 = pattern << 17
result5 = pattern << -1
이전 예제의 결과는 다음과 같습니다.
result1
은(는) 192(0000 0000 1100 0000)입니다.result2
은(는) 3072(0000 1100 0000 0000)입니다.result3
은(는) -32768(1000 0000 0000 0000)입니다.result4
은(는) 384(0000 0001 1000 0000)입니다.result5
이(가) 0입니다(왼쪽으로 15개 위치 이동).
result4
의 시프트 양은 17 AND 15로 계산되며 1과 같습니다.
참고 항목
.NET