다음을 통해 공유


SByte 데이터 형식(Visual Basic)

-128에서 127까지의 값 범위에 속하는 부호 있는 8비트(1바이트) 정수를 저장합니다.

설명

Integer의 전체 데이터 너비 또는 Short의 데이터 너비 절반 조차 필요하지 않은 정수 값을 포함하려면 SByte 데이터 형식을 사용합니다. 경우에 따라, 공용 언어 런타임은 SByte 변수를 긴밀하게 압축하고 메모리 소비를 절약할 수 있습니다.

SByte의 기본값은 0입니다.

리터럴 할당

10진수 리터럴, 16진수 리터럴, 8진수 리터럴 또는(Visual Basic 2017부터) 2진 리터럴을 할당하여 SByte 변수를 선언하고 초기화할 수 있습니다.

다음 예제에서는 10진수, 16진수 및 이진 리터럴로 표현된 -102와 같은 정수가 SByte 값에 할당됩니다. 이 예제에서는 /removeintchecks 컴파일러 스위치를 사용하여 컴파일해야 합니다.

Dim sbyteValue1 As SByte = -102
Console.WriteLine(sbyteValue1)

Dim sbyteValue4 As SByte = &H9A
Console.WriteLine(sbyteValue4)

Dim sbyteValue5 As SByte = &B1001_1010
Console.WriteLine(sbyteValue5)
' The example displays the following output:
'          -102
'          -102
'          -102

참고 항목

16진수 리터럴을 나타내려면 접두사 &h 또는 &H을(를) 사용하고, 이진수 리터럴을 나타내려면 접두사 &b 또는 &B을(를) 사용하고, 8진수 리터럴을 나타내려면 접두사 &o 또는 &O을(를) 사용합니다. 10진수 리터럴에는 접두사가 없습니다.

Visual Basic 2017부터 다음 예와 같이 밑줄 문자 _을 숫자 구분 기호로 사용하여 가독성을 높일 수도 있습니다.

Dim sbyteValue3 As SByte = &B1001_1010
Console.WriteLine(sbyteValue3)
' The example displays the following output:
'          -102

Visual Basic 15.5부터 밑줄 문자(_)를 접두사와 16진수, 이진수, 8진수 사이의 선행 구분 기호로 사용할 수도 있습니다. 예시:

Dim number As SByte = &H_F9

선행 구분 기호로 밑줄 문자를 사용하려면 Visual Basic 프로젝트(*.vbproj) 파일에 다음 요소를 추가해야 합니다.

<PropertyGroup>
  <LangVersion>15.5</LangVersion>
</PropertyGroup>

자세한 내용은 Visual Basic 언어 버전 선택을 참조하세요.

정수 리터럴이 SByte 범위를 벗어나는 경우(즉 SByte.MinValue보다 작거나 SByte.MaxValue보다 큰 경우) 컴파일 오류가 발생합니다. 정수 리터럴에 접미사가 없으면 정수로 추측됩니다. 정수 리터럴이 Integer 형식의 범위를 벗어나면 Long으로 유추됩니다. 즉, 이전 예제에서 숫자 리터럴 0x9A0b10011010(은)는 값이 SByte.MaxValue을 초과하는 156인 부호 있는 32비트 정수로 해석됩니다. 10진수가 아닌 정수를 SByte에 할당하는 다음과 같은 코드를 성공적으로 컴파일하려면 다음 중 하나를 수행할 수 있습니다.

  • /removeintchecks 컴파일러 스위치를 사용해 컴파일하여 정수 범위 검사를 사용하지 않도록 설정합니다.

  • 형식 문자를 사용하여 SByte에 할당할 리터럴 값을 명시적으로 정의합니다. 다음 예제에서는 음수 리터럴 Short 값을 SByte에 할당합니다. 음수의 경우 숫자 리터럴 중 상위 단어의 상위 비트를 설정해야 합니다. 예제의 경우 리터럴 Short 값의 15비트입니다.

    Dim sByteValue1 As SByte = &HFF_9As
    Dim sByteValue2 As SByte = &B1111_1111_1001_1010s
    Console.WriteLine(sByteValue1)
    Console.WriteLine(sByteValue2)
    

프로그래밍 팁

  • CLS 준수. SByte 데이터 형식은 CLS(공용 언어 사양)의 일부가 아니므로 CLS 규격 코드는 이를 사용하는 구성 요소를 사용할 수 없습니다.

  • Widening. SByte 데이터 형식은 Short, Integer, Long, Decimal, SingleDouble로 확장됩니다. 이는 System.OverflowException 오류 발생 없이 SByte를 이러한 형식 중 하나로 변환할 수 있음을 의미합니다.

  • 형식 문자. SByte에는 리터럴 형식 문자 또는 식별자 형식 문자가 없습니다.

  • 프레임워크 형식. .NET Framework에서 해당하는 형식은 System.SByte 구조체입니다.

참고 항목