Int64:是Delphi中最大的整数,64位有符号整数
来源:互联网 发布:win7比特彗星端口阻塞 编辑:程序博客网 时间:2024/05/18 02:14
声明:type Int64 = -9223372036854775808..9223372036854775807;
描述:Int64是64位存储的有符号整数。这个大小已经是固定的了,在以后的Delphi版本中也不会再改变。像IntToStr这样的函数也支持Int64类型(通过重载实现)。
整数常量超过Integer类型的最大值时,将强制转换为Int64类型。
备注:在Delphi中没有无符号的64位整数。
Comp类型也是64位有符号整数,现在已不建议使用。
{显示Int64的储存范围} var min, max : Int64; begin // 取得类型的最大值与最小值 min := Low(Int64); max := High(Int64); ShowMessage('Min int64 value = '+IntToStr(min)); ShowMessage('Max int64 value = '+IntToStr(max)); end;
程序运行结果:
Min int64 value = -9223372036854775808
Max int64 value = 9223372036854775807
-----------------------------------------------------------------------------------------------
Delphi 64与32位的差异
转自:http://www.neugls.info/?p=91&lang=zh
最近,Delphi推出了64位预览版本, 我做为一个忠实的Delphier, 看到这消息后,第一时间学习,并写下这个做为以后的参考资料。
相同点: 在Delphi 64位版本中,UnicodeString,AnsiString,WideString在使用上与32没有区别,只是索引变成了64位,如:S[I]中的I变成了64位。
不同的地方:NativeInt,NativeUint - 64 bits
Point(all pointers) - 64 bits
Dynamic Arrays - 64-bit indexing
Floating point math – Double
Point
String
Class instance
class reference
Interface
AnsiString
WideString
UnicodeString
Procedure pointer
Dynamic array
PAnsiChar
PWideChar
PChar
上面的类型在32位都是4 bytes,在64位下是8 bytes
总体来说:
Delphi/64不支持pascal与BASM(ASM)混写了,只支持纯Asm procedure。
调用过程或函数的前面四传参寄存器也发变成了:RCX, RDX, R8, R9(或XMM0-XMM3)
在处理Message消息结构体时,需要进行显示强制转换,例如:
SendMessage(hWnd,WM_SETTEXT,0,LPARAM(@MyCharArray));
Message.Result:=LRESULT(Self);
最近,Delphi推出了64位预览版本, 我做为一个忠实的Delphier, 看到这消息后,第一时间学习,并写下这个做为以后的参考资料。
Singed types
Delphi/32
Delphi/64
ShortInt
1 bytes
←
SmallInt
2 bytes
←
LongInt
4 bytes
←
Integer
4 bytes
←
Int64
8 bytes
←
Unsinged types
Delphi/32
Delphi/64
Byte
1 bytes
←
Word
2 bytes
←
LongWord
4 bytes
←
Cardianl
4 bytes
←
UInt64
8 bytes
←
← 符号表示大小与Delphi/32相同不同的地方:NativeInt,NativeUint - 64 bits
Point(all pointers) - 64 bits
Dynamic Arrays - 64-bit indexing
Floating point math – Double
Point
String
Class instance
class reference
Interface
AnsiString
WideString
UnicodeString
Procedure pointer
Dynamic array
PAnsiChar
PWideChar
PChar
上面的类型在32位都是4 bytes,在64位下是8 bytes
总体来说:
- 同样的Windows API,如:CreateWindowEx,PeekMessage,etc
- 同样的Delphi RTL:SysUtils,Classes,Generics.Collections,etc
- VCL也相同:Forms,Graphics,Controls,Menus,etc
- 错误处理上也相同:try…finally…., try….exception…..
Delphi/64不支持pascal与BASM(ASM)混写了,只支持纯Asm procedure。
调用过程或函数的前面四传参寄存器也发变成了:RCX, RDX, R8, R9(或XMM0-XMM3)
在处理Message消息结构体时,需要进行显示强制转换,例如:
SendMessage(hWnd,WM_SETTEXT,0,LPARAM(@MyCharArray));
Message.Result:=LRESULT(Self);
- Int64:是Delphi中最大的整数,64位有符号整数
- int64位整数
- 64位有符号与无符号类型的整数
- 有n个32位无符号整数,求其中异或之后结果最大的两个数
- 求整数A和整数B的二进制表示中有多少位是不同的?
- Hailstone 在32位无符号整数中最大的跳跃次数
- c# byte数组转换 8位有符号整数 16位有符号整数 32位有符号整数
- 在一个无符号整数中翻转位的顺序
- 整数A和B的二进制表示中有多少位是不同的
- C++中有符号整数的取值范围
- 计算机中有符号整数“循环”
- 有符号整数与无符号整数
- 有符号整数 存储
- 翻转无符号整数的比特位
- printf的两个需要注意的问题:无符号整数和64位整数
- printf的两个需要注意的问题:无符号整数和64位整数
- 有符号整数类型的回绕
- 有符号整数判断溢出的乘法
- TextField输入框中是否有个叉号一次性删除输入框中的内容
- Windows Domain和WorkGroup的区别
- H.264 NAL detail
- 在Linux下怎么看网络流量?
- Matlab 曲线
- Int64:是Delphi中最大的整数,64位有符号整数
- UTF8和UTF16和UTF32之间的相互转化
- .net生成固定大小缩略图,不变形
- 我与嵌入式
- Log4cpp: log4cpp快速使用指南
- java参数传递(超经典)
- Eigen: C++开源矩阵计算工具——Eigen 在VS2005中的下载、配置与使用
- printk2glog.ko
- 应用服务器和web服务器区别与联系