데이터 형식 요약(Visual Basic)Data Type Summary (Visual Basic)

다음 표에서는 Visual Basic 데이터 형식, 지원 되는 공용 언어 런타임 형식, 해당 명목상 저장소 할당 및 해당 값 범위를 보여 줍니다.The following table shows the Visual Basic data types, their supporting common language runtime types, their nominal storage allocation, and their value ranges.

Visual Basic 형식Visual Basic type 공용 언어 런타임 형식 구조Common language runtime type structure 명목상 저장소 할당Nominal storage allocation 값 범위Value range
BooleanBoolean Boolean 구현 플랫폼에 따라 달라 집니다.Depends on implementing platform True 또는 FalseTrue or False
ByteByte Byte 1바이트1 byte 0-255 (부호 없음)0 through 255 (unsigned)
Char (단일 문자)Char (single character) Char 2바이트2 bytes 0-65535 (부호 없음)0 through 65535 (unsigned)
DateDate DateTime 8바이트8 bytes 01 년 1 월 1 일 0:00:00 (자정), 11:59:59 년 12 월 9999 31 일 오후0:00:00 (midnight) on January 1, 0001 through 11:59:59 PM on December 31, 9999
DecimalDecimal Decimal 16바이트16 bytes 0부터 +/-79228162514264337593543950335 (+/-7.9...E + 28) (소수점 없음) 0부터 +/-7.9228162514264337593543950335, 소수 오른쪽에 28 개 위치0 through +/-79,228,162,514,264,337,593,543,950,335 (+/-7.9...E+28) with no decimal point; 0 through +/-7.9228162514264337593543950335 with 28 places to the right of the decimal;

0이 아닌 가장 작은 숫자는 +/-0.0000000000000000000000000001 (+/-1E-28) 입니다.smallest nonzero number is +/-0.0000000000000000000000000001 (+/-1E-28)
Double (배정밀도 부동 소수점)Double (double-precision floating-point) Double 8바이트8 bytes -1.79769313486231570 e + 308 ~-4.94065645841246544 E-324 (음수 값)-1.79769313486231570E+308 through -4.94065645841246544E-324 for negative values;

4.94065645841246544 e-324 ~ 1.79769313486231570 E + 308 (양수 값)4.94065645841246544E-324 through 1.79769313486231570E+308 for positive values
정수Integer Int32 4바이트4 bytes -2147483648 ~ 2147483647 (부호 있음)-2,147,483,648 through 2,147,483,647 (signed)
Long (long 정수)Long (long integer) Int64 8바이트8 bytes -9223372036854775808 ~ 9223372036854775807 (9.2 ... E + 18 ) (부호 있음)-9,223,372,036,854,775,808 through 9,223,372,036,854,775,807 (9.2...E+18 ) (signed)
개체Object Object클래스Object (class) 32 비트 플랫폼에서 4 바이트4 bytes on 32-bit platform

64 비트 플랫폼에서 8 바이트8 bytes on 64-bit platform
모든 형식을 형식의 변수에 저장할 수 있습니다.ObjectAny type can be stored in a variable of type Object
SByteSByte SByte 1바이트1 byte -128 ~ 127 (부호 있음)-128 through 127 (signed)
Short (short 정수)Short (short integer) Int16 2바이트2 bytes -32768 ~ 32767 (부호 있음)-32,768 through 32,767 (signed)
단일 (단 정밀도 부동 소수점)Single (single-precision floating-point) Single 4바이트4 bytes -3.4028235 e + 38 ~-1.401298 E-45 (음수 값)-3.4028235E+38 through -1.401298E-45 for negative values;

1.401298 e-45 ~ 3.4028235 E + 38 (양수 값)1.401298E-45 through 3.4028235E+38 for positive values
문자열 (가변 길이)String (variable-length) String클래스String (class) 구현 플랫폼에 따라 달라 집니다.Depends on implementing platform 0 ~ 약 20억 유니코드 문자0 to approximately 2 billion Unicode characters
UIntegerUInteger UInt32 4바이트4 bytes 0-4294967295 (부호 없음)0 through 4,294,967,295 (unsigned)
ULongULong UInt64 8바이트8 bytes 0-18446744073709551615 (1.8 ... E + 19 ) (부호 없음)0 through 18,446,744,073,709,551,615 (1.8...E+19 ) (unsigned)
사용자 정의 (구조)User-Defined (structure) (에서 상속 ValueType )(inherits from ValueType) 구현 플랫폼에 따라 달라 집니다.Depends on implementing platform 구조체의 각 멤버는 데이터 형식에 따라 결정 되 고 다른 멤버의 범위에 독립적으로 범위가 결정 됩니다.Each member of the structure has a range determined by its data type and independent of the ranges of the other members
UShortUShort UInt16 2바이트2 bytes 0-65535 (부호 없음)0 through 65,535 (unsigned)

과학적 표기법에서 "E"는 10의 거듭제곱을 나타냅니다. In scientific notation, "E" refers to a power of 10. 따라서 3.56 E + 2는 3.56 x 102 또는 356을 의미 하 고, 3.56 e-2는 3.56/102 또는 0.0356을 의미 합니다.So 3.56E+2 signifies 3.56 x 102 or 356, and 3.56E-2 signifies 3.56 / 102 or 0.0356.

참고

텍스트를 포함 하는 문자열의 경우 함수를 사용 하 여 StrConv 텍스트 형식을 다른 형식으로 변환 합니다.For strings containing text, use the StrConv function to convert from one text format to another.

선언 문에서 데이터 형식을 지정 하는 것 외에도 형식 문자를 사용 하 여 일부 프로그래밍 요소의 데이터 형식을 강제할 수 있습니다.In addition to specifying a data type in a declaration statement, you can force the data type of some programming elements by using a type character. 형식 문자를 참조 하십시오.See Type Characters.

메모리 소비Memory Consumption

기본 데이터 형식을 선언 하는 경우 메모리 소비가 명목상 저장소 할당과 동일 하다 고 가정 하는 것은 안전 하지 않습니다.When you declare an elementary data type, it is not safe to assume that its memory consumption is the same as its nominal storage allocation. 이는 다음과 같은 고려 사항으로 인해 발생 합니다.This is due to the following considerations:

  • 저장소 할당.Storage Assignment. 공용 언어 런타임은 응용 프로그램이 실행 중인 플랫폼의 현재 특성에 따라 저장소를 할당할 수 있습니다.The common language runtime can assign storage based on the current characteristics of the platform on which your application is executing. 메모리가 거의 가득 찬 경우 선언 된 요소를 가능한 한 가깝게 압축할 수 있습니다.If memory is nearly full, it might pack your declared elements as closely together as possible. 다른 경우에는 성능 최적화를 위해 메모리 주소를 자연 하드웨어 경계에 맞출 수 있습니다.In other cases it might align their memory addresses to natural hardware boundaries to optimize performance.

  • 플랫폼 너비입니다.Platform Width. 64 비트 플랫폼의 저장소 할당은 32 비트 플랫폼에 할당 된 것과 다릅니다.Storage assignment on a 64-bit platform is different from assignment on a 32-bit platform.

복합 데이터 형식Composite Data Types

구조 또는 배열과 같은 복합 데이터 형식의 각 멤버에도 동일한 고려 사항이 적용 됩니다.The same considerations apply to each member of a composite data type, such as a structure or an array. 단순히 형식의 멤버에 대 한 명목상 저장소 할당을 추가 하는 것에는 의존해 서는 안 됩니다.You cannot rely on simply adding together the nominal storage allocations of the type's members. 또한 다음과 같은 다른 고려 사항도 있습니다.Furthermore, there are other considerations, such as the following:

  • 헤드만.Overhead. 일부 복합 형식에는 추가 메모리 요구 사항이 있습니다.Some composite types have additional memory requirements. 예를 들어 배열에는 배열 자체와 각 차원에 대 한 추가 메모리가 사용 됩니다.For example, an array uses extra memory for the array itself and also for each dimension. 32 비트 플랫폼에서이 오버 헤드는 현재 12 바이트와 각 차원에 대 한 8 바이트를 더한 값입니다.On a 32-bit platform, this overhead is currently 12 bytes plus 8 bytes for each dimension. 64 비트 플랫폼에서는이 요구 사항이 두 배가 됩니다.On a 64-bit platform this requirement is doubled.

  • 저장소 레이아웃.Storage Layout. 메모리의 저장소 순서가 선언 순서와 동일 하다는 것을 안전 하 게 가정할 수 없습니다.You cannot safely assume that the order of storage in memory is the same as your order of declaration. 2 바이트 또는 4 바이트 경계와 같은 바이트 맞춤에 대 한 가정을 수행할 수도 없습니다.You cannot even make assumptions about byte alignment, such as a 2-byte or 4-byte boundary. 클래스 또는 구조체를 정의 하 고 해당 멤버의 저장소 레이아웃을 제어 해야 하는 경우 StructLayoutAttribute 특성을 클래스나 구조체에 적용할 수 있습니다.If you are defining a class or structure and you need to control the storage layout of its members, you can apply the StructLayoutAttribute attribute to the class or structure.

개체 오버 헤드Object Overhead

Object기본 또는 복합 데이터 형식을 참조 하는는 데이터 형식에 포함 된 데이터 외에 4 바이트를 사용 합니다.An Object referring to any elementary or composite data type uses 4 bytes in addition to the data contained in the data type.

참고 항목See also