作者forgot75421 (伏加特I
看板C_Sharp
標題[問題] C#位數的問題 2^31
時間Sat Oct 4 02:05:08 2008
我在C#中執行
int m = ((int)Math.Pow(2, 31));
label4.Text = Convert.ToString(m);
他顯示了 -2147483648 但是應該是要正整數吧
然後我又打了
int m = ((int)Math.Pow(2, 31)-1);
label4.Text = Convert.ToString(m);
顯示了2147483647
在java中2的31次方會顯示2147483647
然而在C#中卻顯示了 -2147483648
是不是表示在C#中INT整數型別的最大為2的31次方-1呢???
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.168.7.169
1F:推 b122630913:2^1=2 2^2=4 2^3=8 2^4 =16 2^5=32 所以2^31尾數是偶數 10/04 02:45
2F:→ b122630913:至於前面的負號應該是溢位吧=.= 2^30=1073741824 10/04 02:50
3F:推 toki:把 int 宣告改成 uint 試試 10/04 12:24
4F:→ humanfly:1:int的範圍可以查 這在"HELLO WORLD"後應該就要知道了 10/04 21:28
5F:→ humanfly:手上的資料 int佔4bites 2^32 無號能表達0~ 2^32-1 10/04 21:30
6F:→ humanfly:有號也就是一般的int就/2 -2^31~ 2^31-1(正數含0少一個) 10/04 21:33
7F:→ humanfly:所以你可以宣告成uint long single double(VB.NET中) 10/04 21:35