C#中的uint是無符號整數類型,int是有合適整數類型。兩者的取值規模不不異,那么,若何將uint值轉換為int呢?
打開visual studio,建立一個節制臺應用程序,本文的所有代碼都在Program.cs文件的Main方式中進行演示。起首查看uint無符號整數類型的最大值 uint.MaxValue = 4294967295,最小值 uint.MinValue = 0
然后在Main方式中利用 int.MaxValue 獲得int的最大值,int.MinValue 獲得int的最小值。從運行成果來看,int有符號整數類型的最大值 int.MaxValue = 2147483647,最小值 int.MinValue = -2147483648
從上面兩個成果可以看出,uint無符號的意思是,數值只有整數沒有負數。int有符號的意思是,數值既有整數還有負數。別的,uint的正數規模比int的正數規模要大一倍
對于uint值在int規模內的時辰,只需利用 (int)變量 的格局就能轉換當作int值了。這種體例是強制轉換,對于在規模內的數有用
對于uint值在int正數規模外的時辰,利用 (int)變量 的格局轉化,就會呈現數據溢出,可是程序不會報錯,轉換后獲得的值不是想要的成果
對于上面這種環境,假設程序中碰到了,還不報錯,呈現的問題會讓人很費解。假設是銀行的存條目,因為多存了一塊錢導致數字溢出,釀成了負數,這是絕對無法原諒的。是以,在轉換的代碼外面加上checked關頭字,在轉換溢出的時辰就會拋出異常,防止溢出
除了利用括號int這種強制轉換之外,還可以利用下面的體例轉換:
1)int.Parse強制轉換,這種體例若是溢出了會直接報錯,拋出異常
2)int.TryParse轉換,若是數據溢出了,轉換會返回false,也就是轉換掉敗,不拋出異常
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!