在2147483647的邊緣瘋狂試探

2022-09-13 06:18:13 字數 1271 閱讀 9306

最近其實一直都在是摸魚的狀態,程式設計也很少了。其實自己真的想有一段時間啥都別顧及的只是敲**就行了的時光。說我怠惰也好,現在感覺就是我幹什麼都有一種沒有用的感覺。

這次碰到的這個問題源於我們c 語言課上的實驗

#include int main()

return 0;

}int max(int x,int y)

本來也沒什麼,只是突然間有位老哥好像發現了新大陸

」哦豁,爆掉了「= =,輸入超大的數最後反而會輸出乙個根本不在兩者之間的負數。

立刻丟掉了無聊的實驗內容,開始研究這個問題的本質。其實就是資料溢位吧。

實驗內容

其實之前還是了解了一下,int的範圍在vc6裡是-231

231-1,也就是-21474836482147483647。於是便開始瘋狂試探。

的確是2147483647的力量。

但現在有乙個新的疑問便是 -1141710350 又是從何而來的呢?

監視變數

說來慚愧...我之前程式設計為了檢視乙個變數裡的內容,不停的用print,messagebox。。

知道現在知道可以用監視

可以發現一賦值123412341234就立馬變成了-1141710350

這時還是請出程式猿計算器吧。。

從上面的測試可以看出,這個數是與123412341234有關的

而它的二進位制編碼是‭0001 1100 1011 1011 1111 0010 1110 0001 1111 0010‬

而如果只保留32位的話便成了1011 1011 1111 0010 1110 0001 1111 0010這裡恰恰就是 -1141710350 的二進位制**。

ps:位鍵盤真好玩= =

奮鬥 在畢業的邊緣

學生生涯即將結束了,工作的生活也將隨之開始。對自己這近二十年的學生生活來個總結,希望能給還在學校學習的同學一些參考。從小學到高中的生活一直很簡單,可以簡單的歸納乙個字 學 小學的我成績還不錯,玩著玩著都能考到班裡前幾名,當然也以很高的分數考上了乙個不錯的初中。到了初中才發現這裡面不用考試就可以公升級...

思考在專業邊緣

最近看了一些人的部落格專欄,發現有很多人的東西還是寫的不錯,感覺很專業。說明還是很多人在非常認真的做東西,真正投入了工程研究。這讓還找不到門的我感覺很欣 慰,也對那些一直在認真做事情的人表示敬意。註冊csdn差不多半個月了,一直在想怎樣寫下我的第一篇博文。在工科的道路上抹黑走了很多年,直到今天還找不...

在路上 瑪拿西心碎的瘋光

窗外陽光燦爛 我卻沒有溫暖。看著她處在崩潰的邊緣,我很擔心,不知道這種茫然何時才能結束。一直以來,她都很優秀,但是也極端的忙碌,我總認為這不太好,之前也曾好言相勸。公司現在遠沒達到時不我待的緊張程度,而且大多數時候,我們只要把自己的工作做好,就是很好的貢獻了,一些管理和資源上的問題真的不是乙個人就能...