非常にトリッキーな C# 試験の準備をしていて、その最中にこの質問がポップアップしました。次のコードがあります。
uint zzz = -12u;
-12u
はリテラルとして認識System.Uint32
されますが、タイプ の変数にのみ格納できますlong
。何故ですか ?
非常にトリッキーな C# 試験の準備をしていて、その最中にこの質問がポップアップしました。次のコードがあります。
uint zzz = -12u;
-12u
はリテラルとして認識System.Uint32
されますが、タイプ の変数にのみ格納できますlong
。何故ですか ?
それが行っているのは、unsigned int 12 を取り、それを負の値 ( -
) に変換しようとしていることです。これには、unsigned int ではできない負の数を処理できる型への変換が必要です。
unsigned int であるため、int の範囲外の値を持つ可能性があるため、long への変換が必要です。
u
は unsigned intを処理するためのものです
-ve sign それを Long データ型に変換します
-12u は signed int データ型であり、型に格納するためにデータ型unsigned
を使用しますlong