c++ - C 和 C++ 中的 1LL 或 2LL 是什么?

我正在查看 Google Code Jam 中的一些解决方案,并且有些人使用了我以前从未见过的这些东西。例如,

2LL*r+1LL

2LL 和 1LL 是什么意思?

它们的包含如下所示:

#include <math.h>
#include <algorithm>
#define _USE_MATH_DEFINES

#include <cmath>

最佳答案

LL 使 long long 类型的整数文字。

所以2LL,是long long类型的2。

如果没有 LL,文字只能是 int 类型。

当你做这样的事情时,这很重要:

1   << 40
1LL << 40

仅使用文字 1,(假设 int 为 32 位,您将超出整数类型的大小 -> 未定义行为)。 使用 1LL,您事先将类型设置为 long long,现在它将正确返回 2^40。

https://stackoverflow.com/questions/16248221/

相关文章:

c++ - 如何强制 gcc 链接未使用的静态库

c++ - 如何让我的类(class)成为 google-test 类(class)的 friend

c++ - 虚函数默认参数行为

c++ - 如何设置 QMainWindow 标题

c++ - 持有派生类引用的基类的 std::unique_ptr 在 gcc 编译器中不显示警告,

c++ - 动态和静态范围程序差异

c++ - (为什么)移动构造函数或移动赋值运算符应该清除它的参数吗?

c++ - 最快的素数测试算法

c++ - VS2012 在 64 位目标中 vector 的性能不佳

c++ - 计算机如何进行浮点运算?