[解決済み】0LLや0x0ULの意味は何ですか?
2022-02-12 15:08:59
質問事項
を読んでいます。 Google Goチュートリアル で、定数のところにこんなのがありました。
0LLや0x0ULのような定数はありません。
Googleで検索してみましたが、出てくるのはこれらの定数を使用している例ばかりで、どういう意味なのか説明がありません。0xは16進数リテラルを開始するためのものですが、これらは16進数で可能な文字ではありません。
どのように解決するのですか?
CやC++の定数です。接尾辞の
LL
は、その定数が
long long
であり、かつ
UL
とは
unsigned long
.
一般に、各
L
または
l
を表します。
long
と、それぞれの
U
または
u
は
unsigned
. そのため、例えば
1uLL
は、定数 1 で型
unsigned long long
.
これは浮動小数点数にも適用されます。
1.0f // of type 'float'
1.0 // of type 'double'
1.0L // of type 'long double'
と文字列と文字がありますが、これらは接頭辞です。
'A' // of type 'char'
L'A' // of type 'wchar_t'
u'A' // of type 'char16_t' (C++0x only)
U'A' // of type 'char32_t' (C++0x only)
CとC++では、整数定数は元の型を使用して評価されるため、整数のオーバーフローによるバグが発生する可能性があります。
long long nanosec_wrong = 1000000000 * 600;
// ^ you'll get '-1295421440' since the constants are of type 'int'
// which is usually only 32-bit long, not big enough to hold the result.
long long nanosec_correct = 1000000000LL * 600;
// ^ you'll correctly get '600000000000' with this
int secs = 600;
long long nanosec_2 = 1000000000LL * secs;
// ^ use the '1000000000LL' to ensure the multiplication is done as 'long long's.
Google Go では、すべての整数は大きな整数として評価されます (切り捨ては行われません)。
var nanosec_correct int64 = 1000000000 * 600
で、"はありません。 通常演算の推進 "です。
var b int32 = 600
var a int64 = 1000000000 * b
// ^ cannot use 1000000000 * b (type int32) as type int64 in assignment
というように、接尾辞は必要ありません。
関連
-
[解決済み】C 未知の型名「my_structure」。
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] C++でextern "C "を使用した場合の効果は?
-
[解決済み] C言語のコードで「:-!」とは何ですか?
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み] C#のconstとreadonlyの違いは何ですか?
-
[解決済み] C言語における「static」の意味とは?
-
[解決済み] Project Eulerとの速度比較。CとPythonとErlangとHaskellの比較
-
[解決済み] ポインタの「デリファレンス」とはどういう意味ですか?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C 言語の添え字で配列の要素値を代入すると、配列でもポインタでもベクトルでもない値になる
-
[解決済み】「ポインタから異なるサイズの整数へのキャスト」エラーが発生するのはなぜですか?
-
[解決済み] Connect: ソケット以外でのソケット操作
-
[解決済み】エラー:'for'ループの初期宣言はC99モードでしかできない【重複
-
[解決済み】Cygwin - Makefile-error: ターゲット `main.o' のレシピに失敗しました。
-
[解決済み】 「配列のイニシャライザーはイニシャライザーリストまたは文字列リテラルでなければなりません」と表示されるのですが?
-
[解決済み】コンパイラの警告 - 真理値として使用される代入の周囲に括弧を付けることを推奨する
-
[解決済み】LinuxのI_PUSHに相当するもの
-
[解決済み】Errno: 11, Resource Temporarily Unavailable(リソースが一時的に利用できない
-
[解決済み】配列型char[]が代入できない [重複]。