delphi的变量取值范围是多少

archingde 2010-09-19 03:27:51
谁能确切的罗列下,delphi中整型和实型变量的取值范围?
整型是不是还分integer和Longint啊?
...全文
458 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
软件钢琴师 2010-09-27
  • 打赏
  • 举报
回复
以前面试的时候,变态的面试官,问过这些,鬼才能记得住
kye_jufei 2010-09-27
  • 打赏
  • 举报
回复
Integer 类型 取值范围 空间
Integer –2147483648~2147483647
signed 32-bitCardinal 0~4294967295
unsigned 32-bitShortint –128~127
signed 8-bit
Smallint –32768~32767 signed 16-bit
Longint –2147483648~2147483647 signed 32-bit
Int64 –263~263–1 s
igned 64-bitByte 0~255
unsigned 8-bit
Word 0~65535
unsigned 16-bit
Longword 0~4294967
unsigned 32-bit
Real类型 精度 取值范围 空间
Real 15-16 5.0*10^-324~1.7*10^308 8B
Single 7-8 1.5*10^45~3.4*10-38 4B
Double 15-16 5.0*10^-324~1.7*10^308 8B
Extended 19-20 3.6*10^-4951~1.1*10^4932 10B
Currency 19-20 8B
AT88088 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bdmh 的回复:]
看帮助

Type Range Format
Integer -2147483648..2147483647 signed 32-bit
Cardinal 0..4294967295 unsigned 32-bit
Fundamental integer types include Shortint, Smallint, Longint, Int64, Byte, Word, and L……
[/Quote]


顶一个,
gaoguoping 2010-09-26
  • 打赏
  • 举报
回复
delphi热键:
ctrl+shift +c
ctrl+shift+i
ctrl+shift+u
ctrl+shift+向上键
ctrl+shift+向下键
L3nnon 2010-09-25
  • 打赏
  • 举报
回复
谢谢啦。。 收藏收藏。。
sforiz 2010-09-20
  • 打赏
  • 举报
回复
Delphi技术手册看一下吧,对这此些有概括性的讲解
goodhj 2010-09-20
  • 打赏
  • 举报
回复
查官方的语言手册:

一般来说整数的计算操作会返回Integer类型值,与32位Longint相同,运算元为Int64时,返回Int64类型值

notebook800 2010-09-20
  • 打赏
  • 举报
回复
看看《Delphi 5开发人员指南》第2章
qkhhxkj102 2010-09-20
  • 打赏
  • 举报
回复
分类 范围 字节 备注
简单类型 序数 整数 Integer -2147483648 .. 2147483647 4 有符号32位
Cardinal 0 .. 4294967295 4 无符号32位
Shortint -128 .. 127 1 有符号8位
Smallint -32768 .. 32767 2 有符号16位
Longint -2147483648 .. 2147483647 4 有符号32位
Int64 -263 .. 263 8 有符号64位
Byte 0 .. 255 1 无符号8位
Word 0 .. 65535 2 无符号16位
Longword 0 .. 4294967295 4 无符号32位
字符 AnsiChar(Char) ANSI字符集 8位
WideChar Unicode字符集 16位
布尔 Boolean False < True
Ord(False) = 0
Ord(True) = 1
Succ(False) = True
Pred(True) = False 1
ByteBool False <> True
Ord(False) = 0
Ord(True) <> 0
Succ(False) = True
Pred(False) = True 1
WordBool 2
LongBool 4
枚举
子界
实数   Real 5.0×10-324 .. 1.7×10308 8 [精度]15..16
Real48 2.9×10-39 .. 1.7×1038 6 [精度]11..12;
向后兼容
Single 1.5×10-45 .. 3.4×1038 4 [精度]7..8
Double 5.0×10-324 .. 1.7×10308 8 [精度]15..16
Extended 3.6×10-4951 .. 1.1×104932 10 [精度]19..20
Comp -263 + 1 .. 263 - 1 8 [精度]19..20
Currency -922337203685477.5808 ..
922337203685477.5807 8 [精度]19..20
字符串     ShortString 255个字符 2..256B 向后兼容
AnsiString 大约 231 个字符 4B..2GB 8位(ANSI)字符
WideString 大约 230 个字符 4B..2GB 多用户服务和
多语言应用程序;
和com定义的BSTR兼容
其他 String
String[0..255]
PChar
PAnsiString
PWideString
结构类型 集合   Set 最多256个元素[0..255]
数组 静态数组    
动态数组  
记录   Record
文件   File
类   Class
类引用   Class reference
接口   Interface
指针类型 无类型指针   Pointer
有类型指针 预定义类型指针 PAnsiString
PString
PByteArray
PCurrency
PDouble
PExtended
PSingle
PInteger
POleVariant
PShortString
PTextBuf
PVarRec
PVariant
PWideString
PWordArray
过程类型 程序过程类型   Procedural
对象过程类型   Procedural  
变体类型     Variant  
  OleVariant  

slmax1 2010-09-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bdmh 的回复:]
看帮助

Type Range Format
Integer -2147483648..2147483647 signed 32-bit
Cardinal 0..4294967295 unsigned 32-bit
Fundamental integer types include Shortint, Smallint, Longint, Int64, Byte, Word, and L……
[/Quote]


我也多学习一下,哈哈。
notebook800 2010-09-20
  • 打赏
  • 举报
回复
2楼的齐全
L3nnon 2010-09-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bdmh 的回复:]

看帮助

Type Range Format
Integer -2147483648..2147483647 signed 32-bit
Cardinal 0..4294967295 unsigned 32-bit
Fundamental integer types include Shortint, Smallint, Longint, Int64, Byte, Word, and ……
[/Quote]
学习。。 学习。。
bdmh 2010-09-19
  • 打赏
  • 举报
回复
看帮助

Type Range Format
Integer -2147483648..2147483647 signed 32-bit
Cardinal 0..4294967295 unsigned 32-bit
Fundamental integer types include Shortint, Smallint, Longint, Int64, Byte, Word, and Longword.

Fundamental integer types
Type Range Format
Shortint -128..127 signed 8-bit
Smallint -32768..32767 signed 16-bit
Longint -2147483648..2147483647 signed 32-bit
Int64 -2^63..2^63-1 signed 64-bit
Byte 0..255 unsigned 8-bit
Word 0..65535 unsigned 16-bit
Longword 0..4294967295 unsigned 32-bit
yct0605 2010-09-19
  • 打赏
  • 举报
回复
基本语法问题,找找相关资料吧,整型份很多种的,byte,integer,word。。。
delphi 为了完全支持OLE,32位Delphi 增加了Variant 数据类型,本节将从宏观角度来分析这种数据类型。实际上,Variant类型对Pascal语言有普遍而深入的影响,Delphi 控件库中与OLE 无关的地方也使用到这种类型。 Variant变量没有类型 一般说来,你可以用Variant 变量存储任何数据类型,对它执行各种操作和类型转换。需要注意的是:这违反了Pascal 语言的一贯原则,有悖于良好的编程习惯。variant 变量的类型检查和计算在运行期间才进行,编译器不会提示代码中的潜在错误,这些错误在进一步测试中才能发现。总之,你可以认为包含variant变量的代码是解释性代码,正如解释性代码一样,许多操作直到执行时才能知道,这对代码运行速度会有很大的影响。 上面对Variant 类型的使用提出了警告,现在来看看Variant 类型究竟能干什么。基本上说,如果声明了一个variant 变量: var V: Variant; 你就可以把各种不同类型的值赋给它: V := 10; V := 'Hello, World'; V := 45.55; 一旦得到一个variant 值,你可以把它拷贝给任何兼容或不兼容的数据类型。如果你把值赋给不兼容的数据类型,Delphi 会力尽所能进行转换,无法转换则颁布一个运行时间错误。实际上,variant变量中不仅包含了数据还包含有类型信息,并允许一系列运行时间操作,这些操作很方便,但运行速度慢且安全性差。 见例VariTest,它是上面代码的扩展。窗体上有三个编辑框,一对按钮,第一个按钮的OnClick 事件代码如下: procedure TForm1.Button1Click(Sender: TObject); var V: Variant; begin V := 10; Edit1.Text := V; V := 'Hello, World'; Edit2.Text := V; V := 45.55; Edit3.Text := V; end; 很有趣是不是?你可以把一个值为字符串的variant 变量赋给编辑框Text 属性,还可以把值为整数或浮点数的variant 变量赋给Text属性。正如你在图10.1中所看到的,一切正常。 (图10.1)按Assign按钮后,例VariTest的输出结果 图 10.1: 例 VariTest 的 Assign 按钮 Click 事件输出结果 更糟糕的是:你还可以用variant变量计算数值,从第二个按钮的Click事件代码就可看到这一点: procedure TForm1.Button2Click(Sender: TObject); var V: Variant; N: Integer; begin V := Edit1.Text; N := Integer(V) * 2; V := N; Edit1.Text := V; end; 至少这种代码带有一定危险性,如果第一个编辑框包含了一个数字,那么一切运行正常;如果不是,将会引发异常。这里再重申一遍,如果不到万不得以,不要随便使用Variant 类型,还是应坚持使用传统的Pascal 数据类型和类型检查方法。在Delphi 和 VCL中,variant变量主要是用于 OLE 支持和数据库域的访问。 Variant类型内部结构 Delphi中定义了一个 variant 记录类型,TVarData,它与Variant 类型有相同的内存布局。你可以通过TVarData访问variant变量的实际类型。TVarData 结构中包含了Variant类型信息(由Vtype域表示)、一些保留域及当前值。 VType域的取值包括OLE 自动化中的所有数据类型,这些类型通常叫OLE 类型或variant 类型。以下是variant 类型的完整列表,按字母顺序排列: varArray varBoolean varByRef varCurrency varDate varDispatch varDouble varEmpty varError varInteger varNull varOleStr varSingle varSmallint varString varTypeMask varUnknown varVariant 你可以在Delphi 帮助系统的variants 主题下找到这些类型的说明。 还有许多操作variant 变量的函数,你可以用它们进行特定的类型转换,或通过它们获取variant变量的类型信息(例如VarType 函数),当你用variant变量写表达式时,Delphi会自动调用这些类型转换和赋值函数。另外还有操作variant 数组的例程,你可以通过帮助文件的Variant support routines 主题了解相关内容。 Variant类型运行很慢! Variant 类型代码运行很慢,不仅数据类型转换如此,两个值为整数的Variant 变量相加也是如此。它们几乎跟Visual Basic这种解释性代码一样慢!为了比较Variant变量和整型变量的运行速度,请看例VSpeed 。 程序中设置了一个循环,记录运行时间并在进程条中显示运行状态。下面是基于variant类型的一段代码,基于整型的代码与此相似: procedure TForm1.Button1Click(Sender: TObject); var time1, time2: TDateTime; n1, n2: Variant; begin time1 := Now; n1 := 0; n2 := 0; ProgressBar1.Position := 0; while n1 < 5000000 do begin n2 := n2 + n1; Inc (n1); if (n1 mod 50000) = 0 then begin ProgressBar1.Position := n1 div 50000; Application.ProcessMessages; end; end; // we must use the result Total := n2; time2 := Now; Label1.Caption := FormatDateTime ( 'n:ss', Time2-Time1) + ' seconds'; end; 记时这段代码值得一看,因为你可以把它用到任何类型的性能测试中。正如你所看到的,程序用Now 函数获取当前的时间,用FormatDateTime 函数格式化时间差,输出结果以分("n")和秒("ss")表示。除此之外,你可以用Windows API的GetTickCount 函数,该函数能精确显示操作系统启动后至当前的毫秒数。 从上例可见两者的速度差异非常之大,以至于不用精确记时也能看到这种差异。图10.2是在本人计算机上运行程序看到的结果。当然运行结果取决于运行程序的计算机,但是两者的数值比不会有太大变化。
初学 Delphi 嵌入汇编[1] - 汇编语言与机器语言 初学 Delphi 嵌入汇编[2] - 汇编语言关键字 初学 Delphi 嵌入汇编[3] - 第一个 Delphi 与汇编的例子 初学 Delphi 嵌入汇编[4] - 寄存器在过程与函数中的使用 初学 Delphi 嵌入汇编[5] - 寄存器在过程与函数中的使用 - 续 初学 Delphi 嵌入汇编[6] - & 操作符 初学 Delphi 嵌入汇编[7] - 使用常量 初学 Delphi 嵌入汇编[8] - 8 位寄存器、16 位寄存器与 32 位寄存器 初学 Delphi 嵌入汇编[9] - asm 可以代替 begin 初学 Delphi 嵌入汇编[10] - 函数返回值与寄存器 初学 Delphi 嵌入汇编[11] - 用汇编重写一个 Delphi 函数 初学 Delphi 嵌入汇编[12] - 在汇编代码中可以直接使用 Result 初学 Delphi 嵌入汇编[13] - 地址参数用 [] 取值 初学 Delphi 嵌入汇编[14] - 常量与变量在汇编中的一个区别 初学 Delphi 嵌入汇编[15] - 需要保护的寄存器 初学 Delphi 嵌入汇编[16] - 进制的表示方法 初学 Delphi 嵌入汇编[17] - 逻辑运算 初学 Delphi 嵌入汇编[18] - SHL 与 SHR 初学 Delphi 嵌入汇编[19] - Delphi 的无符号整数类型 初学 Delphi 嵌入汇编[20] - Delphi 的 Integer 类型 初学 Delphi 嵌入汇编[21] - Delphi 的其他整数类型 初学 Delphi 嵌入汇编[22] - 在汇编代码中使用记录 初学 Delphi 嵌入汇编[23] - LOOP 循环 初学 Delphi 嵌入汇编[24] - 汇编语言的简单数据类型 初学 Delphi 嵌入汇编[25] - 在汇编中调用函数 初学 Delphi 嵌入汇编[26] - 大小写字母转换 初学 Delphi 嵌入汇编[27] - XCHG 指令: 交换寄存器的内容 初学 Delphi 嵌入汇编[28] - 把 EAX 的值置为 0 的三种方法与效率 初学 Delphi 嵌入汇编[29] - 寄存器所能接受的数值范围 初学 Delphi 嵌入汇编[30] - 寄存器表

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧