說實話這幾個單位很多人會弄混,先放上直觀的對應表:
1KB = 1,000 Byte
1MB = 1,000 KB
1GB = 1,000,000 KB
1TB = 1,000,000,000 KB
1KiB = 1,024Byte
1MiB = 1,024KiB
1GiB = 1,024MiB = 1,048,576 KiB
1TiB = 1,024GiB = 1,073,741,824 KiB
其中,KiB是 ki lo bi nary byte 的縮寫,指的是千位 二進制 字節
而KB是 kilobyte 的縮寫,指的是千字節
二者的區別就在於當中的 二進制 。我想說道這裏大部份人應該都明白為啥KiB是按照1024換算的了。還記得那個笑話麽,A問程式設計師B借錢:
A:B,借我點錢吧!
B:多少?
A:1000行不?
B:湊個整,給你1024吧!
再說深入一點,這其中其實牽扯了兩種標準:
國際單位制 SI 制定的十進制標準和 國際電工委員會 制定的二進制標準,也就是通常所說的SI和IEC標準。
=============================================================
看了匿名使用者的回復,決定來補充一些東西。//話說這種問題為啥要匿名呀摔!
首先1KB=1000B絕對不是硬碟廠商發明的,他們只是利用者,嗯嗯。
然後,關於大B和小b,匿名使用者解釋的非常好。順便一說為啥網絡傳輸要使用小b,因為在網絡傳輸的時候,我們傳輸的實際上是一個個二進制數,似乎可以俗稱為位元流。那麽,在傳輸二進制數的時候,我們顯然是不管你這是什麽字,用的什麽編碼的,所以我們衡量傳輸速度的最直接的量就是每秒鐘傳輸了多少了二進制位,所以在電腦網絡中,我們普遍使用小b作為單位。
然後對於ta提出的Windows的Size的問題,這個很好解釋。
首先,第一個Size顯然是經過舎入的。請不要用115去做乘法,直接用118774去除1024就能得到結果:115.990234375。關於舍入究竟是什麽規則,我還在尋找相關的文件,就目前來看似乎是直接舍去小數部份。
然後,第二個Size on Disk就更好解釋了。如果你用118784除1024會發現誒,正好整除!結果就是116!這是為啥呢?顯然這跟檔在磁盤上儲存的最小單位有關。在NTFS分區上,檔儲存的最小區塊是簇,一般情況下預設的簇大小為4K,也就是說,不論你的檔有多小,就算你的檔只有1b,對不起,我還是要占用一個4K大小的簇。仔細一算你是不是發現116/4剛好整除,等於29呢?說明你的系統很可能也是4K為一個簇,然後該檔占用了你29個簇。
參考[知識] KB KiB MB MiB GB GiB TB TiB 單位傻傻分不清楚?
千字節Kibibyte