今天就是一年一度的1024節了!
/** * 程式設計師們,1024快樂。
*/public class hello1024
private static void is1024(string date) }
好吧並沒有這個節,不過這個日子該慶祝啥,相信在座諸位很多人都懂的:
當然是慶祝二進位制了!
1024是乙個整數嘛。它等於 210,二進位制表示為10000000000。
本來1024這種東西應該是數學家的玩具,但是不幸我們有了電腦,而電腦是基於二進位制執行的,所以這個奇怪的數字就變得人盡皆知了……
因為電腦的執行和儲存都基於二進位制,所以記憶體也好磁碟也好快閃儲存器也好,理論總容量應該是2的某次冪。老一些的記憶體都是64m、128m、256m、512m這樣的數字,更老一些的電腦開機自檢會在螢幕上讀出記憶體容量,往往還要讀3遍,經常能看到16384kb、65536kb這樣的數字——這些也都是2的次冪。
但最常用的2次冪,當然還是1024——它是計算機領域的基本倍數:1m = 1024k,1g = 1024m,等等。
問題來了!1024和1000太接近了——乙個有趣而有用的巧合,正因此它成了計算機的基本倍數;但另一些時候就煩人了。
210 ≈ 103,這個巧合在估算的時候很管用。比如想知道262是多少,就把它拆成260 × 22,前者約等於1018,後者等於4,因此就是4×1018。(實際上大約是4.61×1018,相差不大。)
但這只是數量級上相差不大,1024畢竟不等於1000。如果你買了乙個4600t的硬碟,結果到手只有4000t,你可能就不開心了。
其實現在硬碟幾乎都在玩這個花招。計算機內部計算都是按照1024來算的,但是銷售時卻都會按照1000來宣稱。比如我現在這個標稱為500g的硬碟,實際上總可用空間是接近500000000000位元組,對於計算機來說,只有465g。
1000or1024
然而你又不太好說他們錯——k啊m啊這些字首,都是從科學計數法的字首裡拿來的,人家本來就是指1000,只是在電腦里成了1024。這些字首都來自希臘語:
一般使用者幾乎不會接觸到p以上的級別。在t這一級上,二者的差距不到10%,大家通常也就忍了。
為了避免混淆,國際電工委員會(iec)提出過乙個標準:iec 80000-13。在這個標準下,科學計數法(1000)按照正常標記,而計算機領域(1024)則全都加乙個小寫i。因此,1kb就是1000b,而1kib才是1024b;1 mib = 1024 kib,1 gib = 1024 mib,等等。不幸的是,這個標準沒有得到很廣泛的使用,現在大家還是都是亂來的。
比如,計算1262 × 13,他們會這樣計算:
1262 × 13
= (1024 + 128 + 64 + 32 + 8 + 4 + 2) × 13
= 1024 × 13 + 128 × 13 + 64 × 13 + 32 × 13 + 8 × 13 + 4 × 13 + 2 × 13
= 13312 + 1664 + 832 + 416 + 104 + 52 + 26
= 16406
等等,這是在幹啥?
如果我們來做乘法的話,那麼我們會:
1262 × 13
= 1000 × 13 + 200 × 13 + 60 × 13 + 2 × 13
……好像也差不多。
對,古埃及人也是把大數拆成小數來算乘法,但是我們拆成10、100、1000的倍數,而他們則拆成2、4、8、16、32、64……的倍數。這是二進位制呀!
雖然不那麼直觀,但是二進位制也有它的好處:便於不動腦查**。按照我們十進位制乘法,每一位都有10種可能:千位可能沒有,也可能是1000、2000、3000、4000……9000。這樣**上就得留出9個位置。但是二進位制乘法下,每一位要麼有,要麼沒有。雖然要拆的次數變成了三倍(還記得為什麼是三倍嗎),但拆完之後就省事兒了。
這種計算方式並沒有對後代產生很大影響,但每次我們敲出1024的時候,除了達蓋爾的旗幟之外,似乎還是值得緬懷一下古埃及人?摘錄
程式設計師節日快樂
節日快樂!今天這個部落格沒有技術內容,因為我最近在找工作,新的技術暫時沒有時間研究了。簡單談談這幾年的工作經歷,第乙份工作是我印象最深刻的一家公司,包括同事,雖然現在離職了,但是挺想念那個公司。然後發現畢業之後很多事情是身不由己的,不是我想怎樣就能怎樣,但是畢業之後我的朋友選擇就可以按照自己的內心,...
1024程式設計師節 節日快樂
今天繼續學習kafka kafka命令 1 檢視當前伺服器中的所有topic atguigu hadoop102 kafka bin kafka topics.sh list zookeeper hadoop102 2181 2 建立topic atguigu hadoop102 kafka bin...
你真的懂程式設計師嗎?
人們常說程式設計師的生活枯燥為人刻板,其實這是你不懂程式設計師。程式設計師也是很懂得品味人生的,因為工作影響他門也許會對生活感慨,傷感自己沒足夠或是更多的時間去做工作之外的別的事。程式設計師在學習和工作期間幾乎天天和機器打交道,壓根就沒有受欺負或是欺負別人的機會,勤奮的程式設計師在除錯無窮多的程式b...