VC6.0下64位整数的操作

来源:互联网 发布:断电mysql修复 编辑:程序博客网 时间:2024/06/06 01:20

       今天写了一个关于大整数乘法的程序,开始计算结果并不让人满意,

也就是result=0x305*0x499602D2

result等于多少的问题。


       我把结果result定义为:DWORD类型,结果溢出了。

看了一个DWORD,原来是32位,4个字节。因此会溢出,那VC6.0不支持8字节长度的数据格式吗?如long long之类的?

改成double,同样不行。。

       后来查看,原来VC6.0支持64位8字节的长整型,为:__int64型(双下划线)

这样就可以了。

__int64 result;

UINT num1=0x305;

UINT num2=0x499602D2;

result=(__int64)num1*(__int64)num2;

       这样得到了所要的数值。

那把result格式一下到字符串呢?

CString strResult;

strResult.Format("%I64u",result);   //这里使用   %I64u(I为字母ai)

转成十进制无符号数。

       以上解决我的64位长整型数据处理问题。

0 0
原创粉丝点击