ACM大数的处理

数据精度以及定义:

类型                      字节数                 范围                  2进制位数           输入输出

int                            4                 -2 e9~2e9                 2^31             %d  %o  %x

unsigned int          4                     0~4e9                    2^32                      %u

short                       2                -32768~32768          2^15             %hd %ho  %hx

unsigned short     2                      0~2e9                   2^16                   %hu

long                         4                     -2 e9~2 e9            2^31            %ld  %lo %lx

unsigned long       4                    -2e9~2e9               2^31                  %lu

float:                      4                     7位有效数字       +-10e38               %f

double :                8               15/16位有效数字       10e308              %lf

__int64                    8                  -9e18~9e18            2^63                 %I64  %I64o  %I64x

long long int           8                     -9e18~9e18          2^63                %lld  %llo  %llx

unsign  __int64     8                     0~1e19 2^64

unsigned long longint    8           0~1e19                 2^64                 %I64u  %llu

char                         1                                                     2^7                       %c

unsigned char        1                                                    2^8                       %c

关于__int64long long的用法:

(1)VC

定义:

VC里面,因为基于C89C98,所以只有__int64被识别,

用法:__int64 a; 

输入输出:

"%I64d"和"%I64u"则是Microsoft VC++库里用于输入输出__int64类型的格式说明。


定义:

dev c++里面,就支持__int64long long

用法:__int64 a; 

    long long int a;

输入输出:

但是由于他是基于Mingw32的,所以输入输出只能用%I64d,他并不支持%lld

(3)OJ上的处理

"%lld"和"%llu"是linux下gcc/g++用于long long int类型(64 bits)输入输出的格式符。


总结:

做ACM时,OJ测试系统由于是在linux上提交,所以只能用long long a;

输入输出只能用%lld,%llu;

(输入时切记用%lld,不能用%d)

VC上编译器上,定义只能用__int64 a;

输入输出则用%I64d"和"%I64u;

dev c++编译器上,定义可用__int64long long;

输入输出则只支持__int64;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值