程式設計師們節日快樂!你真的懂啥是1024嗎?

2021-08-07 01:25:34 字數 2070 閱讀 3100

今天就是一年一度的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...