什么是C和C ++中的1LL或2LL?
我正在研究Google Code Jam中的一些解决方案,有些人使用了我以前从未见过的这些东西。 例如,
2LL*r+1LL
2LL和1LL是什么意思?
他们的包括如下所示:
#include #include #define _USE_MATH_DEFINES
要么
#include
LL
生成long long
类型的整数文字。
所以2LL
,是2 long long
型的long long
。
没有LL
,文字只能是int
类型。
当你做这样的事情时,这很重要:
1 << 40 1LL << 40
只有文字1
,(假设int
为32位,你移动超出整数类型的大小 - >未定义的行为)。 使用1LL
,您可以将类型设置为long long
然后它将正确返回2 ^ 40。