delphi中integer是32bit signed
xp系统中文件大小最多4G也就是32位,理论上是2^32 - 1
当file size超过2G时,得到的integer就会变成负数(first bit is 1)
要得到正确的数字必须用capacity更大的variable
如32bit unsigned 的 cardinal 或 longword.
而int64因为也是signed的所以转换出来的也就负数所以不能用。
example:
delphi中integer是32bit signed
xp系统中文件大小最多4G也就是32位,理论上是2^32 - 1
当file size超过2G时,得到的integer就会变成负数(first bit is 1)
要得到正确的数字必须用capacity更大的variable
如32bit unsigned 的 cardinal 或 longword.
而int64因为也是signed的所以转换出来的也就负数所以不能用。
example: