什么是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。