SByte 데이터 형식 (Visual Basic)SByte data type (Visual Basic)

-128부터 127 까지의 값 범위에 해당 하는 부호 있는 8 비트 (1 바이트) 정수를 저장 합니다.Holds signed 8-bit (1-byte) integers that range in value from -128 through 127.

설명Remarks

SByte데이터 형식을 사용 하 여 전체 데이터 너비를 요구 하지 않는 정수 값을 포함 Integer 하거나의 데이터 너비의 절반에 해당 하는 정수 값을 포함 합니다 Short .Use the SByte data type to contain integer values that do not require the full data width of Integer or even the half data width of Short. 경우에 따라 공용 언어 런타임은 변수를 긴밀 하 게 압축 하 고 메모리 사용을 줄일 수 있습니다 SByte .In some cases, the common language runtime might be able to pack your SByte variables closely together and save memory consumption.

SByte의 기본값은 0입니다.The default value of SByte is 0.

리터럴 할당Literal assignments

SByte10 진수 리터럴, 16 진수 리터럴, 8 진수 리터럴 또는 (Visual Basic 2017부터) 이진 리터럴을 할당 하 여 변수를 선언 하 고 초기화할 수 있습니다.You can declare and initialize an SByte variable by assigning it a decimal literal, a hexadecimal literal, an octal literal, or (starting with Visual Basic 2017) a binary literal.

다음 예제에서는 10 진수, 16 진수 및 이진 리터럴로 표시 되는-102와 동일한 정수가 값에 할당 됩니다 SByte .In the following example, integers equal to -102 that are represented as decimal, hexadecimal, and binary literals are assigned to SByte values. 이 예제를 사용 하려면 컴파일러 스위치를 사용 하 여 컴파일해야 /removeintchecks 합니다.This example requires that you compile with the /removeintchecks compiler switch.

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

참고

접두사 또는를 사용 하 여 &h &H 16 진수 리터럴을 표시 하거나, 접두사 또는을 사용 하 여 이진 리터럴을 표시 하 고, 접두사 또는를 사용 하 여 &b &B &o &O 8 진수 리터럴을 나타냅니다.You use the prefix &h or &H to denote a hexadecimal literal, the prefix &b or &B to denote a binary literal, and the prefix &o or &O to denote an octal literal. 10진수 리터럴에는 접두사가 없습니다.Decimal literals have no prefix.

Visual Basic 2017부터 _ 다음 예제와 같이 밑줄 문자를 자릿수 구분 기호로 사용 하 여 가독성을 높일 수도 있습니다.Starting with Visual Basic 2017, you can also use the underscore character, _, as a digit separator to enhance readability, as the following example shows.

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

Visual Basic 15.5부터 _ 접두사와 16 진수, 이진 또는 8 진수 숫자 사이의 선행 구분 기호로 밑줄 문자 ()를 사용할 수도 있습니다.Starting with Visual Basic 15.5, you can also use the underscore character (_) as a leading separator between the prefix and the hexadecimal, binary, or octal digits. 예를 들면 다음과 같습니다.For example:

Dim number As SByte = &H_F9

선행 구분 기호로 밑줄 문자를 사용하려면 Visual Basic 프로젝트(*.vbproj) 파일에 다음 요소를 추가해야 합니다.To use the underscore character as a leading separator, you must add the following element to your Visual Basic project (*.vbproj) file:

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

자세한 내용은 Visual Basic 언어 버전 설정을참조하십시오.For more information see setting the Visual Basic language version.

정수 리터럴이 SByte 범위를 벗어나는 경우(즉 SByte.MinValue보다 작거나 SByte.MaxValue보다 큰 경우) 컴파일 오류가 발생합니다.If the integer literal is outside the range of SByte (that is, if it is less than SByte.MinValue or greater than SByte.MaxValue, a compilation error occurs. 정수 리터럴에 접미사가 없으면 정수가 유추 됩니다.When an integer literal has no suffix, an Integer is inferred. 정수 리터럴이 형식의 범위를 벗어나면 Integer Long 이 유추 됩니다.If the integer literal is outside the range of the Integer type, a Long is inferred. 즉, 앞의 예제에서 숫자 리터럴 및은 값이 0x9A 0b10011010 156 인 32 비트 부호 있는 정수로 해석 됩니다 SByte.MaxValue .This means that, in the previous examples, the numeric literals 0x9A and 0b10011010 are interpreted as 32-bit signed integers with a value of 156, which exceeds SByte.MaxValue. Decimal이 아닌 정수를에 할당 하는 것과 같은 코드를 성공적으로 컴파일하려면 SByte 다음 중 하나를 수행할 수 있습니다.To successfully compile code like this that assigns a non-decimal integer to an SByte, you can do either of the following:

  • 컴파일러 스위치를 사용 하 여 컴파일하여 정수 범위 검사를 사용 하지 않도록 설정 /removeintchecks 합니다.Disable integer bounds checks by compiling with the /removeintchecks compiler switch.

  • 형식 문자 를 사용 하 여에 할당 하려는 리터럴 값을 명시적으로 정의 SByte 합니다.Use a type character to explicitly define the literal value that you want to assign to the SByte. 다음 예에서는에 음수 리터럴 값을 할당 합니다 Short SByte .The following example assigns a negative literal Short value to an SByte. 음수의 경우 숫자 리터럴의 상위 단어에 대 한 상위 비트를 설정 해야 합니다.Note that, for negative numbers, the high-order bit of the high-order word of the numeric literal must be set. 이 예제의 경우 리터럴 값의 비트는 15입니다 Short .In the case of our example, this is bit 15 of the literal Short value.

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

프로그래밍 팁Programming tips

  • CLS 규격.CLS Compliance. SByte데이터 형식이 cls ( 공용 언어 사양 )의 일부가 아니므로 cls 규격 코드는이를 사용 하는 구성 요소를 사용할 수 없습니다.The SByte data type is not part of the Common Language Specification (CLS), so CLS-compliant code cannot consume a component that uses it.

  • 넓혀.Widening. SByte데이터 형식은,,,, 및로 확대 변환 Short Integer Long Decimal Single Double 됩니다.The SByte data type widens to Short, Integer, Long, Decimal, Single, and Double. 즉, SByte 오류가 발생 하지 않고 이러한 형식으로 변환할 수 있습니다 System.OverflowException .This means you can convert SByte to any of these types without encountering a System.OverflowException error.

  • 문자를 입력 합니다.Type Characters. SByte에는 리터럴 형식 문자 또는 식별자 형식 문자가 없습니다.SByte has no literal type character or identifier type character.

  • Framework 형식.Framework Type. .NET Framework에서 해당하는 형식은 System.SByte 구조체입니다.The corresponding type in the .NET Framework is the System.SByte structure.

참고 항목See also