Referência
Tipos embutidos
Todos os tipos numéricos, lógicos e de caractere, com o tamanho e a faixa de cada um.
| Tipo | Bytes | Faixa |
|---|
Int8 | 1 | −128 … 127 |
Int16 | 2 | −32 768 … 32 767 |
Int32 | 4 | −2 147 483 648 … 2 147 483 647 |
Int64 | 8 | −9 223 372 036 854 775 808 … 9 223 372 036 854 775 807 |
Int128 | 16 | ±1,7 × 10³⁸ |
Int256 | 32 | ±5,8 × 10⁷⁶ |
Int512 | 64 | ±6,7 × 10¹⁵³ |
Int1024 | 128 | ±9 × 10³⁰⁷ |
Int2048 | 256 | ±1,6 × 10⁶¹⁶ |
Int4096 | 512 | ±5,2 × 10¹²³² |
Inteiros sem sinal#
| Tipo | Bytes | Faixa |
|---|
UInt8 | 1 | 0 … 255 |
UInt16 | 2 | 0 … 65 535 |
UInt32 | 4 | 0 … 4 294 967 295 |
UInt64 | 8 | 0 … 18 446 744 073 709 551 615 |
UInt128 … UInt4096 | 16 … 512 | 0 … 2ⁿ − 1 |
NativeInt e NativeUInt têm o tamanho do ponteiro (8 bytes no Windows de 64 bits).
Reais#
| Tipo | Bytes | Observação |
|---|
Float16 | 2 | guarda estreito e calcula em Float64 |
Float32 | 4 | guarda estreito e calcula em Float64 |
Float64 | 8 | o double; o tipo do literal com ponto |
Float128 | 16 | por software (as funções transcendentais ainda não estão ligadas) |
| Tipo | Bytes | Casas decimais |
|---|
Currency8 | 1 | 1 |
Currency16 | 2 | 2 |
Currency32 | 4 | 3 |
Currency64 | 8 | 4 |
Currency128 | 16 | 12 |
Currency256 | 32 | 32 |
Currency512 | 64 | 64 |
Currency1024 | 128 | 128 |
Currency2048 | 256 | 256 |
Currency4096 | 512 | 512 |
Veja Tipos para a aritmética e o arredondamento.
Lógicos e caracteres#
| Tipo | Bytes | Observação |
|---|
Bool8 Bool16 Bool32 Bool64 | 1, 2, 4, 8 | True/False; WriteLn imprime TRUE/FALSE |
AChar | 1 | caractere de um byte |
WChar | 2 | caractere UTF-16 |
Cadeias#
| Tipo | Codificação |
|---|
LString | bytes, sem codificação declarada |
U8String | UTF-8 |
UString | UTF-16 |
WString | UTF-16, um BSTR de verdade (COM) |
SString[N] | cadeia curta de até N bytes; o tamanho no byte 0 |
Outros#
| Tipo | O que é |
|---|
Pointer | ponteiro sem tipo (o mesmo que ^void) |
^T | ponteiro tipado |
Variant, OleVariant | records gerenciados da RTL |
?T | o anulável de T (TNullable<T>) |
TObject | a raiz das classes |
TArray<T> | vetor dinâmico genérico da RTL |
set of T | conjunto de até 64 elementos |
array of T, array[a..b] of T | vetor dinâmico e estático |
Do Delphi para o Fenner#
| Delphi | Fenner |
|---|
Integer | Int32 |
Cardinal | UInt32 |
Byte | UInt8 |
Word | UInt16 |
Boolean | Bool8 |
Char | WChar |
AnsiChar | AChar |
Single | Float32 |
Double, Real | Float64 |
Extended | Float64 (ou Float128, se precisar da largura) |
Currency | Currency64 |
string | UString (UTF-16); o compilador sugere LString (bytes) |
AnsiString | LString |
WideString | WString |
PChar | PWChar |
Escrever um nome antigo é erro, e o compilador aponta o novo quando sabe: o tipo "Real" foi renomeado para "Float64", o tipo "Currency" foi renomeado para "Currency64", o tipo "String" foi renomeado para "LString".