怎樣記住Integer的最大值(有趣的思維和搞笑的回答)
2013-07-01 11:01 靈感之源 閱讀(20315) 評論(49) 收藏 舉報前言
今天一個同事問我,數據庫里面的某表如果用int做PK,那該表最多可以放多少記錄,我說簡單啊,就是2^31(正數),跟.NET的Int32.MaxValue一樣,約等于20億(正數)吧。同事說,那具體什么數字呢?這就難倒我了,因為我從來不記住具體某個數字,就算是Pi我也只記住3.1415926,我甚至曾經連自己的手機號碼都沒記住,打電話給朋友讓他根據來電顯示告訴我我手機號碼。。。
我能記住這個值是約等于20億是因為在上一個公司的系統中,單表超過30億。。。所以我們不用int。。。
看法
雖然我知道.NET有Int32.MaxValue,但我想知道有沒有簡便易記的辦法,雖然我覺得記住這個數字沒啥特別的用途。。。
Google大神
Google是一個偉大的發明,StackOverflow是一個屌絲程序員的逆襲故事。。。它告訴了我一些好玩的答案:http://stackoverflow.com/questions/94591/what-is-the-maximum-value-for-a-int32
質疑
毫無疑問,很多人質疑提問者為什么需要記住這個數字,不過今天我們關心的,是不同的程序員的不同記憶方法。
答案1-標準答案
(2^31)-1 = 2,147,483,647,這就是“標準”答案。最小的值是-2,147,483,648。
答案2-紋身
一個程序員說,或許你可以弄個紋身,當然了,這只是一個西方的玩笑,相信中國沒多少程序員愿意把這一點數字刻印章身上,除非是你的女神的生日或者三維。。。
搞笑的是,一個回復者說最小值是-2,147,483,647。。。。然后被其他回復者指出應該是-2,147,483,648,然后該回復者說:天啊,那我的紋身該怎么辦。。。換個例子,你刻了女神的生日站身上,如果分手了,換了個女朋友,你怎么辦。。。
答案3-找茬
1. 一個碼農說,敲2,147,486,647 這個值還不如int.MaxValue,因為當你輸入int.M,自動完成就有最大值了。。。
2.另外一個碼農說,用二進制,那就是1111111111111111111111111111111,你是否覺得腦袋更痛。。。
答案4-Google
一個碼農說,隨便一個搜索引擎一輸入就有了。。。(跟我的想法真像。。。)
答案5-有意義的句子
這個做法我最喜歡:
a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9
Boys And Dogs Go Duck Hunting, Come Friday Ducks Hide
2 1 4 7 4 8 3 6 4 8
不過這是使用英文的程序員的做法,對使用中文的程序員來,記住這些單詞,或許比記住這串數字更難。。。
答案6-簡單有效的分段
我比較喜歡這個簡單的做法
2^(x+y) = 2^x * 2^y 2^10 ~ 1,000 2^20 ~ 1,000,000 2^30 ~ 1,000,000,000 2^40 ~ 1,000,000,000,000 (etc.) 2^1 = 2 2^2 = 4 2^3 = 8 2^4 = 16 2^5 = 32 2^6 = 64 2^7 = 128 2^8 = 256 2^9 = 512
有趣的回復是:“硬盤廠商也是這樣干的”。。。笑噴
答案7-常見
2GB
沒錯,就是大家日常所見的空間/大小。容易記吧?
答案8-計算器
拿出你的計算器,切換到Hex,輸入“7FFFFFFF”。
另外一個碼農說,為什么不直接輸入2^31。。。
答案9-電話號碼
美國和澳洲的電話號碼位數都是10位,可以這樣記。中國大城市固定電話區號+號碼也是10位,把它當成電話邊可以記住了。
某蛋痛碼農還校驗了一下該電話號碼的真偽。。。另外一個碼農說:你怎么把我的電話號碼給公開了。。。
答案-你呢?
你覺得有啥好辦法記住這個數字呢?
浙公網安備 33010602011771號