Resumen de tipos de datos (Visual Basic)Data Type Summary (Visual Basic)

La tabla siguiente muestran los tipos de datos de Visual Basic, sus tipos auxiliares de common language runtime, su asignación de almacenamiento nominal y sus intervalos de valores.The following table shows the Visual Basic data types, their supporting common language runtime types, their nominal storage allocation, and their value ranges.

Tipo de Visual BasicVisual Basic type Estructura de tipo de Common language runtimeCommon language runtime type structure Asignación de almacenamiento nominalNominal storage allocation Intervalo de valoresValue range
BooleanBoolean Boolean Depende de la plataforma de implementaciónDepends on implementing platform True o FalseTrue or False
ByteByte Byte 1 byte1 byte 0 y 255 (sin signo)0 through 255 (unsigned)
Char (carácter individual)Char (single character) Char 2 bytes2 bytes de 0 a 65535 (sin signo)0 through 65535 (unsigned)
DateDate DateTime 8 bytes8 bytes 0:00:00 (medianoche) del 1 de enero de 0001 a 11:59:59 P.M. del 31 de diciembre de 99990:00:00 (midnight) on January 1, 0001 through 11:59:59 PM on December 31, 9999
DecimalDecimal Decimal 16 bytes16 bytes de 0 a +/-79,228,162,514,264,337,593,543,950,335 (+/-7.9... E + 28) sin ningún separador decimal; de 0 a +/-7,9228162514264337593543950335 con 28 posiciones a la derecha del separador decimal;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;

número más pequeño distinto de cero es +/-0.0000000000000000000000000001 (+/-1E-28) smallest nonzero number is +/-0.0000000000000000000000000001 (+/-1E-28)
Doble (punto flotante de precisión doble)Double (double-precision floating-point) Double 8 bytes8 bytes -1, 79769313486231570E + 308 a - 4, 94065645841246544E-324 para los valores negativos;-1.79769313486231570E+308 through -4.94065645841246544E-324 for negative values;

4, 94065645841246544E-324 a 1, 79769313486231570E + 308 para los valores positivos4.94065645841246544E-324 through 1.79769313486231570E+308 for positive values
IntegerInteger Int32 4 bytes4 bytes -2.147.483.648 y 2.147.483.647 (con signo)-2,147,483,648 through 2,147,483,647 (signed)
Long (entero largo)Long (long integer) Int64 8 bytes8 bytes -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 (9.2 … E + 18 ) (con signo)-9,223,372,036,854,775,808 through 9,223,372,036,854,775,807 (9.2...E+18 ) (signed)
ObjetoObject Object (clase)Object (class) 4 bytes en plataforma de 32 bits4 bytes on 32-bit platform

8 bytes en la plataforma de 64 bits8 bytes on 64-bit platform
Cualquier tipo puede almacenarse en una variable de tipo ObjectAny type can be stored in a variable of type Object
SByteSByte SByte 1 byte1 byte -128 a 127 (con signo)-128 through 127 (signed)
Short (entero corto)Short (short integer) Int16 2 bytes2 bytes -32.768 a 32.767 (con signo)-32,768 through 32,767 (signed)
Solo (punto flotante de precisión simple)Single (single-precision floating-point) Single 4 bytes4 bytes -3, 4028235E + 38 a - 1, 401298E-45 para los valores negativos;-3.4028235E+38 through -1.401298E-45 for negative values;

1, 401298E-45 a 3, 4028235E + 38 para los valores positivos1.401298E-45 through 3.4028235E+38 for positive values
Cadena (longitud variable)String (variable-length) String (clase)String (class) Depende de la plataforma de implementaciónDepends on implementing platform 0 a aproximadamente 2 mil millones de caracteres Unicode0 to approximately 2 billion Unicode characters
UIntegerUInteger UInt32 4 bytes4 bytes de 0 a 4.294.967.295 (sin signo)0 through 4,294,967,295 (unsigned)
ULongULong UInt64 8 bytes8 bytes de 0 a 18.446.744.073.709.551.615 (1.8 … E + 19 ) (sin signo)0 through 18,446,744,073,709,551,615 (1.8...E+19 ) (unsigned)
Definido por el usuario (estructura)User-Defined (structure) (se hereda de ValueType)(inherits from ValueType) Depende de la plataforma de implementaciónDepends on implementing platform Cada miembro de la estructura tiene un intervalo determinado por su tipo de datos y es independiente de los intervalos de los otros miembrosEach member of the structure has a range determined by its data type and independent of the ranges of the other members
UShortUShort UInt16 2 bytes2 bytes de 0 a 65.535 (sin signo)0 through 65,535 (unsigned)

En notación científica, "E" hace referencia a una potencia de 10. In scientific notation, "E" refers to a power of 10. Por lo que significa que 3.56E + 2 3.56 x 102 o 356 y 3.56E-2 significa 3.56 / 102 o 0.0356.So 3.56E+2 signifies 3.56 x 102 or 356, and 3.56E-2 signifies 3.56 / 102 or 0.0356.

Nota

Para las cadenas que contienen texto, use la StrConv función para convertir de un formato de texto a otro.For strings containing text, use the StrConv function to convert from one text format to another.

Además de especificar un tipo de datos en una instrucción de declaración, puede forzar al tipo de datos de algunos elementos de programación mediante el uso de un carácter de tipo.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. Vea caracteres de tipo.See Type Characters.

Consumo de memoriaMemory Consumption

Cuando se declara un tipo de datos básico, no es suponer que su consumo de memoria es el mismo que su asignación de almacenamiento nominal.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. Esto es debido a las consideraciones siguientes:This is due to the following considerations:

  • Asignación de almacenamiento.Storage Assignment. Common language runtime puede asignar el almacenamiento basado en las características actuales de la plataforma en el que se ejecuta la aplicación.The common language runtime can assign storage based on the current characteristics of the platform on which your application is executing. Si la memoria está casi lleno, se pueden empaquetar los elementos declarados como estrechamente juntos como sea posible.If memory is nearly full, it might pack your declared elements as closely together as possible. En otros casos, se podrían alinear las direcciones de memoria con los límites naturales del hardware para optimizar el rendimiento.In other cases it might align their memory addresses to natural hardware boundaries to optimize performance.

  • Ancho de la plataforma.Platform Width. Asignación de almacenamiento en una plataforma de 64 bits es diferente a la asignación en una plataforma de 32 bits.Storage assignment on a 64-bit platform is different from assignment on a 32-bit platform.

Tipos de datos compuestosComposite Data Types

Las mismas consideraciones se aplican a cada miembro de un tipo de datos compuestos, como una estructura o una matriz.The same considerations apply to each member of a composite data type, such as a structure or an array. No se puede confiar en simplemente suma de las asignaciones de almacenamiento nominal de los miembros del tipo.You cannot rely on simply adding together the nominal storage allocations of the type's members. Además, hay otras consideraciones, como las siguientes:Furthermore, there are other considerations, such as the following:

  • Carga de trabajo.Overhead. Algunos tipos compuestos tienen requisitos adicionales de memoria.Some composite types have additional memory requirements. Por ejemplo, una matriz utiliza memoria adicional para la matriz en Sí y también para cada dimensión.For example, an array uses extra memory for the array itself and also for each dimension. En una plataforma de 32 bits, esta sobrecarga actualmente es de 12 bytes más de 8 bytes para cada dimensión.On a 32-bit platform, this overhead is currently 12 bytes plus 8 bytes for each dimension. En una plataforma de 64 bits se duplica este requisito.On a 64-bit platform this requirement is doubled.

  • Diseño de almacenamiento.Storage Layout. No puede suponerse que el orden de almacenamiento en memoria es el mismo que el orden de declaración.You cannot safely assume that the order of storage in memory is the same as your order of declaration. Incluso no haga suposiciones sobre la alineación de bytes, como un límite de 2 o 4 bytes.You cannot even make assumptions about byte alignment, such as a 2-byte or 4-byte boundary. Si está definiendo una clase o estructura y necesita controlar el diseño de almacenamiento de sus miembros, puede aplicar el StructLayoutAttribute atributo a la clase o estructura.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.

Sobrecarga de objetosObject Overhead

Un Object que hace referencia a ningún dato elemental o compuesto tipo utiliza 4 bytes además de los datos contenidos en el tipo de datos.An Object referring to any elementary or composite data type uses 4 bytes in addition to the data contained in the data type.

Vea tambiénSee Also

StrConv
StructLayoutAttribute
Funciones de conversión de tiposType Conversion Functions
Resumen de conversiónConversion Summary
Caracteres de tipoType Characters
Uso eficiente de tipos de datosEfficient Use of Data Types