1樓:匿名使用者
很簡單,溢位了,這裡int是有符號16位二制數的,那麼int的有符號的十進位制最大的取值範圍是-32768-32767,因為a=32767,a=a+1這時的a應該為32768,已超出int十進位制取值範圍,而得到的-32768的結果是因為這個數是由系統生成的垃圾資料,不是真實資料。建義你好好學學計算機文化基礎,進位制之間的轉換,能為學好c語言打下堅實的基礎。
2樓:hacker海洋
因為32767+1後已經超出最大值,所以結果從最前面的-32768開始算,
比如,32768+2=-32767
如果是unsigned int 的最大值+1,結果就是0了我也是初學者,加我
qq 1032464096 一起討論吧
3樓:偏愛
32767 即二進位制的011111111111111132768 即二進位制的1000000000000000建議看看反碼
再試試unsigned int 就不是這種情況了
4樓:澄聞網
unsigned int 看看就知道為什麼了。
簡單c語言問題求答,簡單c語言問題求解答。
你把 發上來,才能幫你看,幫你找錯誤吧。一個很簡單的c語言問題,求高手解答,謝謝!scanf 分數 d n score 是錯的,這樣會導致你無法輸入任何資料。不信你可以先給score賦一個初值,然後 printf d score 就會發現score永遠是初值。應該寫成scanf d score 如果...
C語言很簡單很簡單的問題,C語言很簡單很簡單的問題
第一個 經過呼叫函式的運算後 沒有返回值 所以c d的值沒變 第二個用不到呼叫函式吧 因為計算機是讀 main的 而且是從main之前找函式 後面的函式 計算機不會讀的 應該輸出10 可能不對 我好久沒玩 c語言了 1.要用指標 改為int t int x,int y,int cp,int dp c...
c語言的問題新手問題很簡單的,C語言的問題 新手問題 很簡單的
由程式中 k 017 得知這是一個八進位制數,而結果是已十進位制輸出所以把017化為十進位制是15,在 得16 g 111 得知這是一個十進位制數,而輸出要求是十六進位制數,111的十六進位制表示為6f,但是由於是g 是先操作後加加,所以輸出仍然是6f,然後再加,此時g應該是70.這裡應該注意 a,...