Partilhar via


Resumo do tipo de dados (Visual Basic)

O quadro seguinte mostra os tipos de dados Visual Basic, os seus tipos comuns de tempo de execução da linguagem, a sua atribuição nominal de armazenamento e as suas gamas de valor.

Visual Basic tipo Estrutura comum do tipo de tempo de execução da linguagem Atribuição nominal de armazenamento Gama de valor
Rio Boolean Boolean Depende da plataforma de implementação True ou False
Byte Byte 1 byte 0 a 255 (não assinado)
Char (personagem único) Char 2 bytes 0 a 65535 (não assinado)
Data DateTime 8 bytes 0:00:00 (meia-noite) de 1 de janeiro de 0001 a 23:59:59 em 31 de dezembro de 9999
Decimal Decimal 16 bytes 0 através de +/-79.228.162.514.264.337.593.593.543.950.335 (+/-7,9...E+28) sem ponto decimal; 0 a +/-7.92281625142633759353950335 com 28 lugares à direita da decimal;

o menor número não zero é +/-0.0000000000000000000000000000000001 (+/-1E-28)
Duplo (ponto flutuante de dupla precisão) Double 8 bytes -1.79769313486231570E+308 através de -4.9406565645841246544E-324 para valores negativos;

4.94065645841246544E-324 através de 1.79769313486231570E+308 para valores positivos
Número inteiro Int32 4 bytes -2.147.483.648 através de 2.147.483.647 (assinado)
Longo (inteiro) Int64 8 bytes -9.223.372.036.854.775.808 através de 9.223.372.036.854.775.807 (9.2...E+18 ) (assinado)
Objeto Object (classe) 4 bytes na plataforma de 32 bits

8 bytes na plataforma de 64 bits
Qualquer tipo pode ser armazenado numa variável de tipo Object
SByte SByte 1 byte -128 até 127 (assinado)
Curto (inteiro curto) Int16 2 bytes -32.768 até 32.767 (assinado)
Único (ponto flutuante de precisão única) Single 4 bytes -3.4028235E+38 até -1.401298E-45 para valores negativos;

1.401298E-45 até 3.4028235E+38 para valores positivos
Corda (comprimento variável) String (classe) Depende da plataforma de implementação 0 a aproximadamente 2 biliões de caracteres Unicode
UInteger UInt32 4 bytes 0 a 4.294.967.295 (não assinado)
ULong UInt64 8 bytes 0 a 18.446.744.073.709.551.615 (1.8...E+19 ) (não assinado)
Definida pelo utilizador (estrutura) (herda de ValueType) Depende da plataforma de implementação Cada membro da estrutura tem uma gama determinada pelo seu tipo de dados e independente das gamas dos outros membros
UShort UInt16 2 bytes 0 a 65.535 (não assinado)

Na notação científica, "E" refere-se a um poder de 10. Assim, 3.56E+2 significa 3,56 x 102 ou 356, e 3.56E-2 significa 3,56 / 102 ou 0,0356.

Nota

Para cadeias que contenham texto, utilize a StrConv função para converter de um formato de texto para outro.

Além de especificar um tipo de dado numa declaração de declaração, pode forçar o tipo de dados de alguns elementos de programação utilizando um tipo de caracteres. Ver Caracteres tipo.

Consumo de Memória

Quando declara um tipo de dado elementar, não é seguro assumir que o seu consumo de memória é o mesmo que a sua atribuição nominal de armazenamento. Isto deve-se às seguintes considerações:

  • Armazenamento Missão. O tempo de execução da linguagem comum pode atribuir armazenamento com base nas características atuais da plataforma em que a sua aplicação está a executar. Se a memória estiver quase cheia, pode embalar os seus elementos declarados o mais próximo possível. Noutros casos, pode alinhar os seus endereços de memória com limites naturais de hardware para otimizar o desempenho.

  • Largura da plataforma. Armazenamento atribuição numa plataforma de 64 bits é diferente da atribuição numa plataforma de 32 bits.

Tipos de dados compostos

As mesmas considerações aplicam-se a cada membro de um tipo de dados composto, como uma estrutura ou uma matriz. Não pode confiar apenas na adição das dotações de armazenamento nominal dos membros do tipo. Além disso, existem outras considerações, tais como:

  • Por cima. Alguns tipos compostos têm requisitos de memória adicionais. Por exemplo, uma matriz usa memória extra para a matriz em si e também para cada dimensão. Numa plataforma de 32 bits, esta sobrecarga é atualmente 12 bytes mais 8 bytes para cada dimensão. Numa plataforma de 64 bits este requisito é duplicado.

  • layout Armazenamento. Não pode assumir com segurança que a ordem de armazenamento na memória é a mesma que a sua ordem de declaração. Não pode sequer fazer suposições sobre o alinhamento byte, como um limite de 2 bytes ou 4 byte. Se estiver a definir uma classe ou estrutura e precisar de controlar o layout de armazenamento dos seus membros, pode aplicar o StructLayoutAttribute atributo à classe ou estrutura.

Sobrecarga de objeto

Um Object referimento a qualquer tipo de dados elementar ou composto utiliza 4 bytes para além dos dados contidos no tipo de dados.

Ver também