Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is 1LL or 2LL in C and C++?

I was looking at some of the solutions in Google Code Jam and some people used this things that I had never seen before. For example,

2LL*r+1LL 

What does 2LL and 1LL mean?

Their includes look like this:

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

or

#include <cmath> 
like image 850
fersarr Avatar asked Apr 27 '13 04:04

fersarr


People also ask

What does 1LL mean in C?

We can also use 1LL (or 1ll). LL is the suffix for long long, which is 64-bit on most C/C++ implementations. So 1LL, is a 1 of type long long.

What is the meaning of << in C++?

<< have two meaning one is left shift operator used in most of programming language which shift the bit left in specified number of time. and other << is use C++ for output insertion operator with cout object this mechanism called operator overloading in C++.


1 Answers

The LL makes the integer literal of type long long.

So 2LL, is a 2 of type long long.

Without the LL, the literal would only be of type int.

This matters when you're doing stuff like this:

1   << 40 1LL << 40 

With just the literal 1, (assuming int to be 32-bits, you shift beyond the size of the integer type -> undefined behavior). With 1LL, you set the type to long long before hand and now it will properly return 2^40.

like image 83
Kyurem Avatar answered Sep 20 '22 16:09

Kyurem