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 类型。

相关推荐
2501_9444241226 分钟前
Flutter for OpenHarmony游戏集合App实战之连连看路径连线
android·开发语言·前端·javascript·flutter·游戏·php
C系语言27 分钟前
python用pip生成requirements.txt
开发语言·python·pip
燃于AC之乐30 分钟前
深入解剖STL Vector:从底层原理到核心接口的灵活运用
开发语言·c++·迭代器·stl·vector·源码分析·底层原理
优雅的潮叭7 小时前
c++ 学习笔记之 chrono库
c++·笔记·学习
星火开发设计7 小时前
C++ 数组:一维数组的定义、遍历与常见操作
java·开发语言·数据结构·c++·学习·数组·知识
月挽清风8 小时前
代码随想录第七天:
数据结构·c++·算法
TTGGGFF8 小时前
控制系统建模仿真(一):掌握控制系统设计的 MAD 流程与 MATLAB 基础运算
开发语言·matlab
2501_944424128 小时前
Flutter for OpenHarmony游戏集合App实战之贪吃蛇食物生成
android·开发语言·flutter·游戏·harmonyos
Lhuu(重开版9 小时前
JS:正则表达式和作用域
开发语言·javascript·正则表达式
点云SLAM9 小时前
C++内存泄漏检测之Windows 专用工具(CRT Debug、Dr.Memory)和Linux 专业工具(ASan 、heaptrack)
linux·c++·windows·asan·dr.memory·c++内存泄漏检测·c++内存管理