網上有許多電話號碼,你知道最常見的是哪個?
有個老外找到了答案,這個號碼就是2147483647。
事情是這樣的,我們知道,在計算機中,整數往往用4個字節保存。4個字節就是32位,由於最高位是符號位,那麼只剩下31位,也就是說,這種方式所能保存的最大整數是2的31次方-1(因爲要去掉零),即2147483647。
這個老外突然意識到,這是一個10位數,與美國電話號碼的位數相同。於是,他就很好奇,214-748-3647會是誰的號碼呢?
214是美國達拉斯市的區號,但是搜索後發現,超過1500個網站上有這個號碼,遍佈全美各地。
爲什麼會這樣?
很顯然,大量程序員考慮不周,使用4個字節的整數保存電話號碼。當用戶輸入的號碼大於2147483647時,就會自動轉成這個數字。因此,它就成了網上最常見的電話號碼。
===================================
我一時興起,想看看國內有沒有人犯這個錯誤。事實證明,真的是有一大把。
因爲我國的長途區號沒有0214,所以這個號碼只能是在上海(區號021)。一想到他會接到各種各樣的來電,要求提供租車服務、租房服務、美容服務、餐飲服務、耐磨材料等等,我就對021-47483647的主人充滿同情。