lenguaje - ¿Qué es 1LL o 2LL en C y C++?
lenguaje c++ ejemplos (1)
El LL
hace que el literal entero del tipo long long
.
Así que 2LL
, es un 2 de tipo long long
.
Sin el LL
, el literal solo sería de tipo int
.
Esto importa cuando haces cosas como esta:
1 << 40
1LL << 40
Con solo el literal 1
, (suponiendo que int
sea de 32 bits, se desplaza más allá del tamaño del tipo de entero -> comportamiento indefinido). Con 1LL
, establece el tipo en long long
antes y ahora devolverá correctamente 2 ^ 40.
Estaba buscando algunas de las soluciones en Google Code Jam y algunas personas usaron cosas que nunca antes había visto. Por ejemplo,
2LL*r+1LL
¿Qué significa 2LL y 1LL?
Sus incluyen se ven así:
#include <math.h>
#include <algorithm>
#define _USE_MATH_DEFINES
o
#include <cmath>