다음을 통해 공유


<< 연산자(Visual Basic)

비트 패턴에서 산술 왼쪽 시프트를 수행합니다.

문법

result = pattern << amount  

부분

result
필수 사항입니다. 정수 숫자 값입니다. 비트 패턴을 이동한 결과입니다. 데이터 형식은 .의 pattern데이터 형식과 동일합니다.

pattern
필수 사항입니다. 정수 숫자 식입니다. 이동할 비트 패턴입니다. 데이터 형식은 정수 형식(SByte,, Byte, Short, UShort, IntegerUInteger, 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

0이면 amount 값이 .의 resultpattern과 동일합니다. 음수이면 amount 부호 없는 값으로 사용되며 적절한 크기 마스크로 마스킹됩니다.

산술 시프트 연산은 오버플로 예외를 생성하지 않습니다.

비고

연산자는 <<오버로드될 수 있습니다. 즉, 피연산자에 해당 클래스 또는 구조체의 형식이 있는 경우 클래스 또는 구조체가 해당 동작을 다시 정의할 수 있습니다. 코드에서 이러한 클래스 또는 구조체에서 이 연산자를 사용하는 경우 다시 정의된 동작을 이해해야 합니다. 자세한 내용은 운영자 프로시저를 참조하세요.

예시

다음 예제에서는 연산자를 << 사용하여 정수 값에 대한 산술 왼쪽 시프트를 수행합니다. 결과는 항상 이동되는 식의 데이터 형식과 동일합니다.

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 00000)입니다.

  • result3 는 -32768(1000 0000 0000 0000)입니다.

  • result4 는 384(0000 0001 1000 0000)입니다.

  • result5 가 0입니다(왼쪽으로 15개 위치 이동).

시프트 금액 result4 은 17 및 15로 계산되며 1과 같습니다.

참고하십시오