亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

好奇怪,求大神解答

為什么當成績是9000000000時是結果是普通玩家????int 有限制數字大小嗎?

還有就是當輸入99999999999.。。。。是偶數個9時就是鉆石玩家,奇數個9時就是普通玩家

正在回答

2 回答

內存中存放的數都是補碼。查查補碼的定義吧。

這里拿32位來看

在32位的系統,int類型最大值正數為2147483647 換算為 補碼就是 0111,1111,1111,1111

這時如果再加1? 那二進制就是? 1000,0000,0000,0000,第一位是符號位 1代表負數,也就是加1后溢出的結果 -2147483648。

如果不斷的再加1 總會變成正數,然后就能滿足那幾個邏輯判斷的任意一個條件了。你在最后面加9 實際上就是每次在前面增加了 9*10n2?? 9乘以10 的N次方,碰巧就符合你說的鉆石、普通玩家了。


0 回復 有任何疑惑可以回復我~

C/C++在64位機中int的最大值就是2^63-1,最小值是-2^63

0 回復 有任何疑惑可以回復我~
#1

ainanshen 提問者

???是不是意思是大于這兩個數就識別不了,然后就隨意還是有其他規律認為是另一個數
2015-10-17 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C語言入門
  • 參與學習       926904    人
  • 解答問題       21532    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

好奇怪,求大神解答

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號