我正在準備一個非常複雜的c#考試,這個問題在彈出時出現。 我有以下代碼:C#int32文字只能存儲在長數據類型
uint zzz = -12u;
-12u
被識別爲System.Uint32
字面但它只能被存儲在long
類型的變量。這是爲什麼 ?
我正在準備一個非常複雜的c#考試,這個問題在彈出時出現。 我有以下代碼:C#int32文字只能存儲在長數據類型
uint zzz = -12u;
-12u
被識別爲System.Uint32
字面但它只能被存儲在long
類型的變量。這是爲什麼 ?
它正在做的是採取無符號整數12,並試圖將其轉換爲負值(-
),它需要轉換爲可處理負數的類型,因爲unsigned int不能。
因爲它是一個無符號整數,所以它有可能的值在int範圍之外,所以需要轉換爲long。
是的;如果你看看[integer literal spec](http://msdn.microsoft.com/en-us/library/aa664674.aspx),你可以看到減號不是文字的一部分,所以它創建了一個'uint',然後在否定它時不得不將它擴大到'long'。 – Rawling
謝謝你,那是我想知道的。 –
因爲u
是unsigned int的
用於處理-VE簽署轉化成Long數據類型
-12u爲它存儲在unsigned
類型符號整數數據類型&它使用long
數據類型
你知道'u'代表什麼嗎? –
我猜是因爲unsigned int應該是無符號的? –
提示:「-12u被識別爲System.Uint32」不正確。說「12u被識別爲System.Uint32」是正確的。 – vcsjones