2010-02-21 77 views
9

Int32UInt32和有什麼不一樣?Int32和UInt32有什麼區別?

如果它們與容量範圍功能相同,則問題是由於什麼原因UInt32被創建?我應該何時使用UInt32而不是Int32

+0

你知道有符號和無符號整數的區別嗎? – 2010-02-21 20:04:51

+0

@Moron:我知道日元。只是不小心把UInt32想成'非託管int32'而不是'unsigned int32'。 hhaaa! – 2010-02-21 20:11:49

+0

投票結束爲「太本地化」,因爲這個問題只對那些認爲UInt32的意思是「非託管的int32」的人有用。我不認爲還有更多的人離開了。 – 2010-02-21 21:25:07

回答

31

UInt32不允許使用負數。從MSDN

UInt32值類型表示值爲0到4,294,967,295範圍內的無符號整數。

+0

+1用於解釋U的用途。 – tsilb 2010-02-21 20:09:16

9

的整數-2147483648到2147483647,無符號整數爲0至4294967295

這篇文章可以幫助你:

http://www.csharp-station.com/Tutorials/Lesson02.aspx 
1

UInt32的是無符號。它不能用來表示負數,但可以保持更大的正數。

4

uint32是一個32位無符號整數,這意味着您可以表示2^32個數字(0-4294967295)。然而,爲了表示負數,32位的一位被保留以指示正數或負數。這會給你留下2^31個可能的數字,也可能是正數。結果範圍是-2147483648到2147483647(正範圍包括值0,因此只有2147483647)。這種表示形式被稱爲int32。

你應該選擇無符號數字,因爲它提供了一個更廣泛的範圍,因爲它提供了一個更廣泛的範圍,但是你應該記住從int32到int32的轉換是不可能的,因爲int32不能保存uint32,反之亦然。