5

非常にトリッキーな C# 試験の準備をしていて、その最中にこの質問がポップアップしました。次のコードがあります。

 uint zzz = -12u;

-12uはリテラルとして認識System.Uint32されますが、タイプ の変数にのみ格納できますlong。何故ですか ?

4

2 に答える 2

12

それが行っているのは、unsigned int 12 を取り、それを負の値 ( -) に変換しようとしていることです。これには、unsigned int ではできない負の数を処理できる型への変換が必要です。

unsigned int であるため、int の範囲外の値を持つ可能性があるため、long への変換が必要です。

于 2012-12-04T15:13:27.783 に答える
0

u は unsigned intを処理するためのものです
-ve sign それを Long データ型に変換します
-12u は signed int データ型であり、型に格納するためにデータ型unsignedを使用しますlong

于 2012-12-04T15:09:44.877 に答える