注册 登录
编程论坛 VB6论坛

VB如何定义一个范围到达100亿的数,我用double定义,10多亿就溢出了

huangjunxing 发布于 2017-10-28 08:54, 4521 次点击
Open "d:\2.bin" For Binary As #1
Put #1, k, Bits2
k = k + 300000
Close #1
Bits2是一个30万bit的数组
往2.bin里面写数据,每次写30万bit,k是写数据的位置,当K的值10多亿的时候,就出现标记错误,这是文件也有2G大了
2 回复
#2
风吹过b2017-10-28 09:30
VB6 不支持 long long (__int64)数据类型,
需要写超过 long 范围的文件,请使用 最新版的 C++ ,老版本的 C 也不支持 long long 数据类型。

支持的数据类型,与编译器有关。
------------------
不知使用API能否创建和访问超过 long 范围的文件。
要去查API说明,如果传入的参数 能使用 long long 类型的数据,那就可以了。
VB可以使用 8个元素的BYTE数组,保存long long 数据,虽然不知道啥内容。

======================
unsigned   int   0~4294967295                   VB6 不支持
int   -2147483648~2147483647                    VB6:long
unsigned long 0~4294967295                      不支持
long   -2147483648~2147483647                   long
long long的最大值:9223372036854775807           不支持
long long的最小值:-9223372036854775808           
unsigned long long的最大值:1844674407370955161  不支持
__int64的最大值:9223372036854775807             不支持
__int64的最小值:-9223372036854775808
unsigned __int64的最大值:18446744073709551615   不支持




[此贴子已经被作者于2017-10-28 20:03编辑过]

#3
csl5912017-11-07 17:05
可以用代码间接实现。比如将所有参与运算的数都缩小10000倍,然后计算。
1