标题:想要保存64bit的数,发现用_int64也只能到32位。请问各位朋友有没有什么好的 ...
只看楼主
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
结帖率:100%
已结贴  问题点数:20 回复次数:4 
想要保存64bit的数,发现用_int64也只能到32位。请问各位朋友有没有什么好的办法。我用的是VC6.0, 不支持long long型。
#include<stdio.h>
#include<math.h>
int main()
{
    _int64 x;
    x=pow(0x10,8);    //当第二个参数是7时,能够打印出10000000,但改为8就输出了0.
    printf("%x",x);
    return 0;
}
8位的十六进制数转为二进制只有32,达不到我的要求。能否帮忙想想办法。
搜索更多相关主题的帖子: 十六进制 include return 二进制 朋友 
2016-11-04 11:23
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
程序代码:
#include <stdio.h>
#include <math.h>
#include <stdint.h>
#include <inttypes.h>
int main( void )
{
    { // 使用VC私有的 __int64 类型
        __int64 x = (__int64)pow( 16.0, 8.0 );
        printf( "%I64x\n", x );
    }
    { // 使用标准的 long long 类型
        long long x = (long long)pow( 16.0, 8.0 );
        printf( "%llx\n", x );
    }
    { // 使用标准的 int64_t 类型
        int64_t x = (int64_t)pow( 16.0, 8.0 );
        printf( "%"PRIx64"\n", x );
    }
    return 0;
}
2016-11-04 12:03
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
得分:0 
第二种方法出现编译器不识别long long的错误,第三种方法提示找不到头文件,第一种方法可以完美解决。看来不是保存不了,是打印方法有问题。
谢谢了。
2016-11-04 12:21
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
以下是引用yangfrancis在2016-11-4 12:21:31的发言:

第二种方法出现编译器不识别long long的错误,第三种方法提示找不到头文件,第一种方法可以完美解决。看来不是保存不了,是打印方法有问题。
谢谢了。
你用的是 VC6 ?
2016-11-04 14:02
StadyC
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:182
专家分:430
注 册:2016-10-13
得分:0 
如果确实要使用到很大的数据,那么可以考虑用数组来存储了。进行运算时,要记住搞好进位方面的就可以了。
2016-11-04 16:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-470696-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.268463 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved