Resumo de tipo de dados (Visual Basic)
A tabela a seguir mostra os tipos de dados de Visual Basic, seus tipos de suporte Common Language Runtime , a alocação de armazenamento nominal e seus intervalos de valores.
Tipo de Visual Basic |
Common language tempo de execução tipo estrutura |
Alocação de armazenamento nominal |
Intervalo deValor |
---|---|---|---|
Depende da implementação da plataforma |
TrueouFalse |
||
1 byte |
0 a 255 (sem sinal) |
||
Char (um único caractere) |
2 bytes |
0 a 65535 (sem sinal) |
|
8 bytes |
0: 00: 00 (meia-noite) em 1º de janeiro de 0001 por meio de 11:59:59 PM em 31 de dezembro de 9999 |
||
16 bytes |
0 a + /-79.228.162.514.264.337.593.543.950.335 (+ /-7,9...E+ 28) † sem ponto decimal ; 0 a + /-7,9228162514264337593543950335 com 28 casas à direita do decimal; menor número diferente de zero é + /-0,0000000000000000000000000001 (+ /-1E-28) † |
||
Double (dupla precisão-((double-precision floating-point)) de ponto flutuante) |
8 bytes |
-1.79769313486231570E + 308 através de - 4.94065645841246544E-324 † para valores negativos; 4.94065645841246544E-324 a 1.79769313486231570E + 308 † para valores positivos |
|
4 bytes |
-2.147.483.648 a 2.147.483.647 (assinado) |
||
Longo ( inteirolongo) |
8 bytes |
-9.223.372.036.854.775.808 através de 9.223.372.036.854.775.807 (9.2...18 E+ †) (assinado) |
|
Object(classe) |
plataformade 4 bytes em-de 32 bits plataformade 8 bytes em-de 64 bits |
Qualquer tipo pode ser armazenado em uma variável do tipoObject |
|
1 byte |
-128 a 127 (assinado) |
||
Curto (abreviada inteiro) |
2 bytes |
-32.768 até 32.767 (assinado) |
|
Único (precisão simples ((single-precision floating-point)) de ponto flutuante) |
4 bytes |
-3.4028235E + 38 através de - 1, 401298E-45 † para valores negativos; -De 1, 401298E 45 a 3.4028235E + 38 † para valores positivos |
|
String (variável-comprimento) |
String(classe) |
Depende da implementação da plataforma |
0 a aproximadamente 2 bilhões Unicode de caracteres |
4 bytes |
0 a 4.294.967.295 (sem sinal) |
||
8 bytes |
0 a 18,446,744,073,709,551,615 (1,8...19 E+ †) (sem sinal) |
||
Definido pelo usuário- (estrutura) |
(herda de ValueType) |
Depende da implementação da plataforma |
Cada membro da estrutura tem um intervalo determinado pelo seu tipo de dados e independentes dos intervalos dos outros membros |
2 bytes |
0 a 65.535 (sem sinal) |
† Na notação científica, "E" refere-se a uma potência de 10. Portanto, 3.56E + 2 significa 3.56 x 102 ou 356 e 3.56E-2 significa 3.56 / 102 ou 0.0356.
Observação |
---|
Para seqüências de caracteres contendo texto, use o StrConv função para converter do formato de texto de um para outro. |
Consumo de memória
Quando você declara um tipo de dadosde elementar, não é seguro pressupor que o seu consumo de memória é o mesmo que sua alocação de armazenamento nominal. Isso é devido a considerações a seguir:
Atribuição de armazenamento. O Common Language Runtime pode atribuir o armazenamento com base nas características da plataforma em que seu aplicativo está em execução atuais. Se a memória está quase cheia, ele talvez pack seus elementos declarados como perto juntos como possíveis. Em outros casos, ele pode alinhar sua memória atende aos limites de hardware natural para otimizarodesempenho.
Largura de plataforma. Atribuição de armazenamento em 64-bits plataforma é diferente da atribuição em uma plataformade bit-32.
Composite Data Types
O mesmo considerações aplicar a cada membro de um tipo de dados composto, como, por exemplo, uma estrutura ou uma matriz. Você não pode depender simplesmente adicionando juntas as alocações de armazenamento nominal dos membros do tipo. Além disso, existem outras considerações, como, por exemplo, o seguinte:
Sobrecarga. Alguns tipos compostos têm requisitos adicionais de memória . Por exemplo, uma matriz usa o extra de memória para o próprio array e também para cada dimensão. Em uma 32-bits plataforma, essa sobrecarga é atualmente 12 bytes mais 8 bytes para cada dimensão. Em uma plataforma de bit-64 esse requisito é dobrado.
Layout de armazenamento. Você não pode afirmar que a ordem de armazenamento em memória é o mesmo que seu pedido de declaração. Você ainda não pode fazer suposições sobre o byte alinhamento, como, por exemplo, 2 -byte ou 4 - limite debyte . Se você está definindo uma classe ou estrutura , e você precisar controlar o layout de armazenamento de seus membros, você pode aplicar o StructLayoutAttributedeatributo para a classe ou estrutura.
Sobrecarga de objeto
Um Object referindo-se a qualquer elementar ou tipo de dados composto usa 4 bytes, além dos dados contidos no tipo de dados.
Consulte também
Referência
Funções de conversão de tipo (Visual Basic)
Resumo de conversão (Visual Basic)