C++11新特性之long long超长整形

1.介绍

long long 超长整形是C++11标准新添加的,用于表示更大范围整数的类型。

2.用法

占用空间:至少64位(8个字节)。

对于有符号long long 整形,后缀用"LL"或"II"标识。例如,"10LL"就表示有符号超长整数10。其取值范围为-2^63~2^63-1。

对于无符号long long 整形,后缀用"ULL"、"ull"、"UII"、"uLL"标识。例如,"10ULL"就表示无符号超长整数10。其取值范围为0~2^64-1。

注意事项:C++11标准规定,每种整形类型必须同时具备有符号(signed)和无符号(unsigned)两种类型,且所占用的空间必须相同。并且,C++11标准只限制了每种类型的最少占用存储空间,不同平台可能占用不同的存储空间。

3.使用场景

(1)处理大整数。例如计算阶乘、斐波那契数列等可能产生大数值的算法中,普通的整形可可能会溢出, 使用long long 类型可以一定程度上避免这个问题。

(2)处理时间戳。时间戳通常是一个较大的整数,使用long long类型可以很好的满足需求。

4.总结

long long 类型为C++开发者提供了一种处理大整数的有效方式,但在使用时需要注意以下问题:

(1)溢出问题。long long 类型范围虽然很大,但仍然可能溢出,因此需要注意是否会溢出。

(2)性能问题。long long 类型需要更大的存储空间,在计算时比普通整数类型(如 int)稍微慢些,因此在对性能要求较高的场景中,需要权衡是否真的需要使用long long 类型。

相关推荐
m0_7369270413 分钟前
使用 Python 将 PowerPoint 转换为 Word 文档
java·开发语言·后端·职场和发展·c#
杜子不疼.22 分钟前
【Rust】路由匹配与参数提取:从 match 语句到 axum 的类型魔法
开发语言·后端·rust
夜晚中的人海41 分钟前
【C++】位运算算法习题
开发语言·c++·算法
裸奔在上海1 小时前
使用Java做URL短连接还原长链接获取参数
java·开发语言·程序人生·spring
爱吃烤鸡翅的酸菜鱼1 小时前
如何掌握【Java】 IO/NIO设计模式?工厂/适配器/装饰器/观察者模式全解析
java·开发语言·后端·设计模式·nio
程序员大雄学编程1 小时前
「用Python来学微积分」17. 导数与导函数
开发语言·python·数学·微积分
扶尔魔ocy1 小时前
【QT常用技术讲解】可拖拽文件的Widget--QListWidget
开发语言·qt
枫叶丹41 小时前
【Qt开发】布局管理器(一)-> QVBoxLayout垂直布局
开发语言·c++·qt
superior tigre1 小时前
(huawei)5.最长回文子串
c++·算法
I'm Jie1 小时前
Gradle 的项目结构与源码集(Source Sets)详解(Kotlin DSL)
android·java·开发语言·spring boot·spring·kotlin·gradle