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

相关推荐
SomeB1oody4 分钟前
【Rust自学】19.1. 摆脱安全性限制的unsafe Rust
开发语言·后端·rust
美味小鱼7 分钟前
Rust HashMap :当储物袋遇上物品清单
开发语言·后端·rust
进击ing小白29 分钟前
c++可变参数详解
开发语言·c++
2501_9032386538 分钟前
Spring Boot Actuator与JMX集成实战
java·开发语言·数据库·个人开发
_extraordinary_41 分钟前
C++11详解(一) -- 列表初始化,右值引用和移动语义
开发语言·c++·c++11
美味小鱼1 小时前
Rust 再谈泛型
开发语言·后端·rust
0xCC说逆向1 小时前
Windows图形界面(GUI)-QT-C/C++ - QT Frame
c语言·开发语言·c++·windows·qt
秋无之地1 小时前
Python爬虫:1药城店铺爬虫(完整代码)
开发语言·爬虫·python
Chandler241 小时前
Google C++ Style / 谷歌C++开源风格
c++·开源
fegxg2 小时前
FastPlanner论文解读(一)——前端路径搜索
c++·机器人·无人机