1. ホーム
  2. c++

[解決済み】CとC++の1LLと2LLとは何ですか?

2022-02-13 14:44:26

質問内容

Google Code Jamの解答を見ていたら、今まで見たこともないようなものを使っている人がいました。例えば、以下のようなものです。

2LL*r+1LL

2LL、1LLとはどういう意味ですか?

その内容は以下の通りです。

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

または

#include <cmath>

解決方法は?

その LL の整数リテラルは long long .

だから 2LL は、タイプ 2 の long long .

がない場合は LL のみで、リテラルの型は int .

このようなことをするときに重要です。

1   << 40
1LL << 40

リテラルのみで 1 は、(仮に int を32ビットとすると、整数型のサイズを超えてシフトしてしまう -> 未定義の動作)。 とは 1LL に設定した場合、その型は long long をあらかじめ指定しておくと、ちゃんと2^40を返してくれます。