Bolik‘s AIO Blog
All In One Team Blog

Delphi.Net内置类型对照表

长度

Delphi

.Net

是否匹配

布尔值

Boolean (单字节)

Byte true($01) false($00)

Byte

无匹配项

Byte仅用于0/1匹配

ByteBool (单字节)

Byte true($ff) false($00) others true

Byte

值完全匹配可传递不推荐使用

WordBool (双字节)

Word true($ffff) false($0000) others true

UInt16

值完全匹配可传递不推荐使用

LongBool (四字节)

DWord true($ffffffff) false($00000000) others true

UInt32

值完全匹配可传递不推荐使用

LongBool (四字节)sizeof(LongBool) = 4

DWord true($ffffffff) false($00000000) others true

Boolean sizeof(Boolean) = 1

DWord true(1) false(0) others true 默认值false

完全匹配

单字节

ShortInt  

-128~127

Sbyte/sbyte

-128~127 默认值0

完全匹配

Byte  

0~255

Byte/byte

0~255 默认值0

完全匹配

Char/AnsiChar

AnsiChar最初模仿ANSI字符集(名称来源),但现在用于扩大到是指当前的本地字符集

Byte

无匹配项

Byte仅可用于内存匹配

双字节

SmallInt 

-32,768~32,767

Int16/short

-32,768~32,767 默认值0

完全匹配

Word 

0~65,535

UInt16/ushort

0~65,535 默认值0

完全匹配

WideChar  Unicode字符

char Unicode 字符

U+0000~U+ffff默认值’\0’

待测试

四字节

Integer/ LongInt 

-2,147,483,648~2,147,483,647

Int32/int

-2,147,483,648~2,147,483,647 默认值0

完全匹配

LongWord/ Cardinal 

0~4,294,967,295

UInt32/uint

0~4,294,967,295 默认值0

完全匹配

八字节

Int64

-9,223,372,036,854,775,808

~9,223,372,036,854,775,807

Int64/long

-9,223,372,036,854,775,808

~9,223,372,036,854,775,807

默认值0L

完全匹配

UInt64/ulong

0 ~ 18,446,744,073,709,551,615

默认值0

无匹配项

Comp

Comp类型来自Intel CPU,表示64位的整数。将其作为实数归类,是因为该类型不具备序数类型的一些特征(如,不能对Comp值进行递增或递减)。Comp类型仅用于向后兼容,因此在新的代码中应当使用Int64类型以获得更好的性能。

 

无匹配项

浮点

Single(4字节)  7~8有效位单精度

±1.5 × 1045 ~ ±3.4 × 1038

Single/float  7有效位精度

±1.5 × 1045 ~ ±3.4 × 1038默认值0.0F

正零和负零。正无穷和负无穷。非数字值 (NaN)。有限的非零值集。

完全匹配

Double/ Real(8字节) 15~16位有效位双精度

±5.0 × 10−324 ~ ±1.7 × 10308

Double 15~16位有效位精度

±5.0 × 10−324 ~ ±1.7 × 10308默认值0.0D

正零和负零。正无穷和负无穷。非数字值 (NaN)。有限的非零值集。

完全匹配

Real48(6字节)  11~12位有效位精度

2.9 × 10-39~1.7 × 1038

 

 

Extended10字节)19~20位有效位扩展精度

3.4*10-4932~1.1*104932

 

无匹配项

Currency8字节)19~20位有效位高精度

-922,337,203,685,477.5808~922,337,203,685,477.5807

 

无匹配项

 

Decimal 28~29位有效位 16字节高精度

±1.0 × 10−28 ±7.9 × 10-28默认值0.0M

无匹配项

字符串

AnsiString/string

大约2^31个字符 4字节到2GB

l         AnsiString也叫做长串(long string),用来表示动态分配的串,其最大长度仅受限于可用内存的大小。长串使用8位的标准(ANSI)字符。

l         长串变量是一个占用4个字节内存的指针。当串变量为空时(此时的串即为空串),它包含了一个零长度的串,指针此时为空指针nil,并且该串不再使用额外的存储空间。当串变量不为空时,它指向一个动态分配的内存块,该内存块中包含串值、一个32位的长度指示和一个32位的引用计数;该内存块分配于堆(heap)中,其管理完全自动且不需要任何用户代码。

 

String/string

待测试

ShortString

255个字符 2256字节

l         ShortString类型串的长度在0255之间。ShortString串的长度可以动态改变,其占用的内存是静态的,总是256字节;第一个字节存储串的长度,其余255个字节存储串中的字符。如果S是一个ShortString类型的变量,那么,和 Length(S) 一样,Ord(S[0]) 返回串的长度;对S[0] 赋值则相当于调用了SetLength,可以改变串的长度。ShortString使用8ANIS字符并且仅用于向后兼容。

 

 

WideString

大约2^30个字符 4字节到2GB

l         WideString类型表示16Unicode字符的动态分配的串。WideString类型大部分的特性与AnsiString类型相似。

l         Win32中,WideString类型与COM BSTR类型兼容。尽管Borland开发工具已经支持AnsiString值到WideString类型的变换,但有时仍可能需要明确将串类型转换(cast)或变换(convert)成WideString类型。

String/string 表示 Unicode 字符的字符串字

l         符串是不可变的,字符串对象一旦创建,其内容就不能更改。

l         尽管 string 是引用类型,但定义相等运算符(== !=)是为了比较 string 对象(而不是引用)的值。这使得对字符串相等性的测试更为直观

l         + 运算符用于连接字符串

l         [] 运算符可以用来访问 string 中的各个字符

l         字符串为 string 类型并可写成两种形式,即用引号引起来和用 @ 引起来。用引号引起来的字符串括在双引号 (")

l         字符串可以包含包括转义序列在内的任何字符 \

l         若要在一个用 @ 引起来的字符串中包括一个双引号,请使用两对双引号

待测试

变体类型

Variant

默认情况下,变体可以保存除记录、集合、静态数组、文件、类、类引用、指针之外的任何类型的值。也就是说,变体可以保存除结构类型和指针之外的任何类型。变体可以保存接口以及接口中可以访问的方法和属性。变体可以保存动态数组,可以保存变体数组(variant array,静态数组的一种特殊类型)。

 

无匹配项

 

posted on 2006-11-04 18:00  Bolik  阅读(1310)  评论(0编辑  收藏  举报