다음을 통해 공유


데이터 형식 요약(Visual Basic)

다음 표에서는 Visual Basic 데이터 형식, 지원되는 공용 언어 런타임 형식, 명목 스토리지 할당 및 값 범위를 보여 줍니다.

Visual Basic 형식 공용 언어 런타임 형식 구조 명목 스토리지 할당 값 범위
Boolean Boolean 플랫폼 구현에 따라 다름 True 또는 False
바이트 Byte 1바이트 0~255(서명되지 않음)
Char (단일 문자) Char 2바이트 0~65535(서명되지 않음)
날짜 DateTime 8바이트 0001년 1월 1일 0:00:00(자정) ~ 9999년 12월 31일 오후 11:59:59
10진수 Decimal 16바이트 0부터 +/-79,228,162,514,264,337,593,543,950,335(+/-7.9...E+28) 소수점 없음; 0부터 +/-7.92281625142643375935439553950335까지 10진수 오른쪽에 28개의 위치가 있습니다.

가장 작은 0이 아닌 숫자는 +/-0.0000000000000000000000000000001 (+/-1E-28)
Double (배정밀도 부동 소수점) Double 8바이트 -1.79769313486231570E+308 ~ -4.94065645841246544E-324 음수 값;

양수 값의 경우 4.94065645841246544E-324~ 1.79769313486231570E+308
정수 Int32 4바이트 -2,147,483,648~ 2,147,483,647(서명)
Long (long 정수) Int64 8바이트 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (9.2...E+18 )(서명)
객체 Object (클래스) 32비트 플랫폼의 4바이트

64비트 플랫폼에서 8바이트
모든 형식은 형식의 변수에 저장할 수 있습니다. Object
SByte SByte 1바이트 -128~127(서명됨)
Short (short 정수) Int16 2바이트 -32,768 ~ 32,767(서명)
단일 (단정밀도 부동 소수점) Single 4바이트 -3.4028235E+38 ~ -1.401298E-45 음수 값

1.401298E-45~ 3.4028235E+38 양수 값
문자열 (가변 길이) String (클래스) 플랫폼 구현에 따라 다름 0~약 20억 개의 유니코드 문자
UInteger UInt32 4바이트 0~4,294,967,295(서명되지 않음)
ULong UInt64 8바이트 0~18,446,744,073,709,551,615(1.8...E+19 )(서명되지 않음)
사용자 정의 (구조) (상속된 항목 ValueType) 플랫폼 구현에 따라 다름 구조체의 각 멤버에는 해당 데이터 형식에 따라 결정되는 범위가 있으며 다른 멤버의 범위와는 독립적입니다.
UShort UInt16 2바이트 0~ 65,535(서명되지 않음)

과학적 표기법에서 "E"는 10의 힘을 나타냅니다. 따라서 3.56E+2는 3.56 x 102 또는 356을 의미하고 3.56E-2는 3.56/102 또는 0.0356을 의미합니다.

비고

텍스트가 포함된 문자열의 경우 함수를 StrConv 사용하여 한 텍스트 형식에서 다른 텍스트 형식으로 변환합니다.

선언문에서 데이터 형식을 지정하는 것 외에도 형식 문자를 사용하여 일부 프로그래밍 요소의 데이터 형식을 강제로 적용할 수 있습니다. 문자 형식을 참조하세요.

메모리 사용량

기본 데이터 형식을 선언하는 경우 메모리 사용량이 명목 스토리지 할당과 동일하다고 가정해도 안전하지 않습니다. 이는 다음과 같은 고려 사항 때문입니다.

  • 스토리지 할당. 공용 언어 런타임은 애플리케이션이 실행되는 플랫폼의 현재 특성에 따라 스토리지를 할당할 수 있습니다. 메모리가 거의 가득 차면 선언된 요소를 가능한 한 긴밀하게 함께 압축할 수 있습니다. 다른 경우에는 메모리 주소를 자연 하드웨어 경계에 맞춰 성능을 최적화할 수 있습니다.

  • 플랫폼 너비입니다. 64비트 플랫폼의 스토리지 할당은 32비트 플랫폼의 할당과 다릅니다.

복합 데이터 형식

구조체 또는 배열과 같은 복합 데이터 형식의 각 멤버에 동일한 고려 사항이 적용됩니다. 단순히 형식 멤버의 명목 스토리지 할당을 함께 추가할 수 없습니다. 또한 다음과 같은 다른 고려 사항이 있습니다.

  • 오버 헤드. 일부 복합 형식에는 추가 메모리 요구 사항이 있습니다. 예를 들어 배열은 배열 자체 및 각 차원에 대해 추가 메모리를 사용합니다. 32비트 플랫폼에서 이 오버헤드는 현재 각 차원에 대해 12바이트 및 8바이트입니다. 64비트 플랫폼에서는 이 요구 사항이 두 배로 증가합니다.

  • 스토리지 레이아웃. 메모리의 스토리지 순서가 선언 순서와 동일하다고 안전하게 가정할 수 없습니다. 2-바이트 또는 4-바이트 경계와 같은 바이트 맞춤을 가정할 수도 없습니다. 클래스 또는 구조를 정의하고 해당 멤버의 스토리지 레이아웃을 제어해야 하는 경우 클래스 또는 구조체에 특성을 적용 StructLayoutAttribute 할 수 있습니다.

개체 오버헤드

Object 기본 또는 복합 데이터 형식을 참조하는 경우 데이터 형식에 포함된 데이터 외에 4바이트를 사용합니다.

참고하십시오