私はGoogle Go tutorialを読み取り、定数部でこれを見ています:0LLまたは0x0ULは何を意味しますか?
は、私はGoogle検索を実行しようとしました0LLや0x0UL
などの一切の定数はありませんが、起動したことすべてはインスタンスどこです人々はこれらの定数を使用していますが、それらの意味については説明がありません。 0xは16進リテラルを開始するはずですが、これらは16進数で可能な文字ではありません。
私はGoogle Go tutorialを読み取り、定数部でこれを見ています:0LLまたは0x0ULは何を意味しますか?
は、私はGoogle検索を実行しようとしました0LLや0x0UL
などの一切の定数はありませんが、起動したことすべてはインスタンスどこです人々はこれらの定数を使用していますが、それらの意味については説明がありません。 0xは16進リテラルを開始するはずですが、これらは16進数で可能な文字ではありません。
これらはCおよびC++の定数です。接尾辞LL
は、定数がタイプlong long
であり、UL
がunsigned long
を意味することを意味します。一般に
、各L
またはl
はlong
各U
又はu
unsigned
を表すを表します。したがって、たとえば
1uLL
は、タイプunsigned long long
の定数1を意味します。
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の移動で
、すべての整数は、(何の切り捨てが起こりません)大きな整数として評価さ
var nanosec_correct int64 = 1000000000 * 600
とない "usual arithmetic promotion"
var b int32 = 600
var a int64 = 1000000000 * b
//^cannot use 1000000000 * b (type int32) as type int64 in assignment
ので接尾辞は必要ありませんされていないされています。 unsigned long
と0x0
が0
の16進のようlong long
とUL
が1つを指定するよう
0LL
は、長いlong zeroです。
0x0UL
は、16進表記を使用して表される符号なしロングゼロです。 0x0UL
== 0UL
。
+ Cのような言語では、これらのサフィックスはあなたに正確な型を教えてください。したがって、たとえば。9があり、いくつかの異なる基本的な数値タイプがあり、文字がそれらを区別int
変数ですが、0LL
はlong long
です:
0 // normal number is interpreted as int
0L // ending with 'L' makes it a long
0LL // ending with 'LL' makes it long long
0UL // unsigned long
0.0 // decimal point makes it a double
0.0f // 'f' makes it a float
「私はGoogle検索を実行しようとしました」...検索をしてみてください「整数定数C++ LL」と呼ばれる。 :) –
私はいつも定数として宣言された変数として 'リテラル'と定数を考えました。 –
十分ですが、 '整数リテラルC++ LL'の結果は似ていると思います... :) –