long long型有什么用

目录

前言

一、什么是long long型

二、什么时候用long long型

1.防止数据溢出

三、怎么使用long long型

总结


前言

在我们日常作oj题时,往往看到大佬定义数据类型时用long long型,那时候笔者只是认为long long型数据范围比较大,其实不然,下面就趁机总结一番吧。


一、什么是long long型

long long型是C++的64位(-9223372036854775808 ~ 9223372036854775807)整型的基本类型,占用8个字节,而int型是32位( -2147483648 ~ 2147483647),所以long long型的范围要比int型范围大得多。

二、什么时候用long long型

1.防止数据溢出

数据溢出:在计算机中,当要表示的数据超出计算机所使用的数据的表示范围时,则产生数据的溢出,这种现象叫做数据溢出。

例如当我们做oj题a+b时,而a、b的数据范围是( -2147483648 ~ 2147483647),当我们用int定义a、b时,会出现溢出错误,因为显然的当a+b时,很有可能会超出int的数据范围。如下图所示:

而此时,我们只用把int型改为long long型即可

三、怎么使用long long型

在我们日常做题时,有人常常习惯于将int宏替换为long long,例如:

#define int long long // 意思是将所有的int替换为long long 

这时需要把int main()改为signed main()

这样写的优缺点:

优点:防止数据溢出,比如有些题目虽然输入数据和答案都是 int 类型,但是可能在计算过程中出现了乘法或大量加法运算导致爆 int,可以稍微的偷懒。。。

缺点:1.long long容易费空间,费时MTE/TLE

           2.长时间这么写,会导致思维懒惰,做题不愿意思考「这题应不应该开 long long」,                写代码也不注意变量类型等细节。

所以笔者并不是很推荐使用#define int long long


总结

总之,long long型的在我们日常算题中的应用以及相关逻辑就这些,希望对你有所帮助。

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值