| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1907 人关注过本帖
标题:想要保存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
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册: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
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册: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
快速回复:想要保存64bit的数,发现用_int64也只能到32位。请问各位朋友有没有什 ...
数据加载中...
 
   



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

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