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

相关推荐
Escalating_xu8 小时前
【C++入门基础(下)】默认参数、函数重载、引用、inline 与 nullptr
android·c++·redis
艾莉丝努力练剑8 小时前
【AI大模型接入SDK】Provider分析与实现
c++·人工智能·学习·面试·大模型·llm
m0_5474866615 小时前
《JavaScript核心原理 》全套PPT课件2026
开发语言·javascript·ecmascript
老当益壮梁奶奶15 小时前
Linux软件编程学习笔记(七):线程分离与线程间通信详解
linux·c语言·c++·笔记·学习
MC皮蛋侠客16 小时前
Tauri 2.x 系列(五):调用系统 API——官方插件、Rust crate 与原生能力
开发语言·后端·rust
布莱克60517 小时前
软中断和硬中断的区别
开发语言·操作系统
whcyhhh17 小时前
头歌实践教学平台:数据科学与大数据技术导论(十二)
大数据·开发语言·python·数据清洗
lzhdim18 小时前
13、JavaScript事件循环机制 - JavaScript学习系列文章
开发语言·前端·javascript·学习·ecmascript
zbyyd18 小时前
Linux 多线程:互斥锁 & 信号量
linux·c语言·开发语言·网络
wuyk55518 小时前
从零吃透Modbus通信|第3章:STM32 Modbus RTU主机
服务器·开发语言·网络·数据结构·stm32·单片机·嵌入式硬件