所有 Windows 版本都支持 Int64 吗?
如果我使用 Int64
类型的变量,它是否适用于所有 Windows 版本:win95、98、2000、nt、xp、vista、win7?不管什么操作系统是32位还是64位?不管他们使用什么CPU?
我只是想确定我的程序可以在所有 Windows 版本上运行。
If I use a variable of type Int64
, will it work on all Windows versions: win95, 98, 2000, nt, xp, vista, win7? No matter what OS it is 32bit or 64bit? And no matter what CPU they are using?
I just want to be sure, that my program will work on all Windows versions.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
语言提供的数据类型的大小不受操作系统或硬件平台的限制。我可以在 32 位平台上使用 64 位整数(就此而言,也可以使用 16 位、8 位或 11 位)。
The size of datatypes provided by a language is not constrained by the operating system or hardware platform. I can have 64-bit integers on 32-bit platforms (or 16- or 8- or 11-bit, for that matter).
32 位 Delphi 编译器支持
Int64
变量。无论代码在什么平台(机器、操作系统等)上执行,对 Int64 操作数的所有操作都将给出相同的结果。在 32 位平台上,编译器必须使用特殊例程,使用可用的 32 位机器指令来执行 64 位算术。当针对 64 位机器时,编译器可以使用本机 64 位指令。无论如何,最终的结果对你来说是无法区分的。
请注意,如果您在 64 位操作系统上执行 32 位 Delphi 可执行文件,您仍将使用 32 位模拟器,即 WOW64。从可执行文件的角度来看,您正在 32 位计算机上运行。除非您使用 XE2 中引入的新 64 位编译器,否则您将生成 32 位可执行文件。
Int64
variables are supported by the 32 bit Delphi compiler. All operations onInt64
operands will give identical results no matter what platform (machine, OS etc.) the code executes on.On 32 bit platforms the compiler has to use special routines to perform 64 bit arithmetic using the 32 bit machine instructions that are available. When targetting a 64 bit machine the compiler can use native 64 bit instructions. No matter, the end result is indistinguishable to you.
Note that if you execute a 32 bit Delphi executable on a 64 bit OS, you will still be using the 32 bit emulator, a.k.a. WOW64. From the perspective of the executable, you are running on a 32 bit machine. Unless you are using the new 64 bit compiler introduced in XE2, you will be producing 32 bit executables.
64 位整数在 32 位操作系统上可以正常工作。
然而,使用这些数据类型的性能提升只有在使用为 64 位操作系统编译的代码时才会实现 - 为此,您需要 Delphi XE2。
同时,您可以获得额外的数据容量,但没有额外的执行速度(尽管这通常不会成为大多数应用程序的考虑因素)。
The 64bit integers will work fine on a 32bit operating system.
Performance gains in using these data types however will only come when using code compiled for a 64bit operating system - for this you would need Delphi XE2.
Meanwhile you have the benefits extra data capacity, but not extra execution speed (although this would not normally be a consideration for most applications).