易混淆的進制和文件大小(比特、字節、size on disk)

字節和比特

byte(字節) 縮寫 B,bit (比特)縮寫 b。git

bit 是計算機中最小的單位,經常使用於帶寬。github

byte 是信息計量單位,經常使用於文件大小。windows

進制

1byte = 8 bit緩存

往上 KB, MB, GB, TB, PB...的進制分爲1024 和1000,根據場景選用。網絡

這種混用是歷史緣由形成的,詳見下文:dom

The kilobyte is a multiple of the unit byte for digital information. Although the SI prefix kilo- means 1000, the term kilobyte and symbol KB have historically been used to refer to either 1024 (2^10) bytes or 1000 (10^3) bytes, dependent upon context, in the fields of computer science and information technology.spa

For example, when referring to data transfer rate and to disk storage space, 「kilobyte」 means 1000 (10^3) bytes. On the other hand, random-access memory capacity such as CPU cache measurements are always stated in multiples of 1024 (2^10) bytes, due to memory’s binary addressing.3d

即,1024用於計算機領域(如:CPU緩存大小),1000用於信息技術(如:數據傳輸速率、磁盤存儲空間)。orm

後來未免混淆,1024進制的KB MB GB TB,可寫爲 KiB MiB GiB ,不過普及率不高。blog

易混淆的場景

1. 硬盤大小

廠商標註的硬盤大小,進制是1000;電腦計算文件的大小,進制是1024,因此在電腦上查看時,會發現比標註的容量更小(據說這是生產標準而已,不是忽悠人)。

2. 網速、帶寬

網絡帶寬的統計單位是b(因此才叫比特率率嘛!)單位通常用Mbps,Gbps,進制1000。
舉個栗子:家裏面寬帶是4兆的,最高的下載速度能達到多少?

下載軟件(如:迅雷)採用的Bps爲下載單位,由於下載的是文件,使用用存儲單位。

而某些流量監控軟件,也跟風使用 B ,就不是很合適了,網速應該用網絡單位 b 呀

3. OS X 和 Window 

Apple認爲1GB=1 000 000 000字節,Microsoft認爲1GB=1 073 741 824字節

因此同一個文件,在 os x 和 window 上顯示的大小不一樣,不過點開詳情看顯示多少 bytes時就同樣了。

 Size on disk 

一個119,175 bytes大小的文件,在 windows 上右鍵戳開 properties 會看到:

size:116 KB(除以1024再四捨五入,不戳properties查看詳情時顯示的是117 KB )

size on disk :120 KB (122,880 bytes)

這是由於磁盤分區格式爲 NTFS,分簇爲4096 B,因此填不滿一個分簇也得把其中剩下的大小分配給該文件。

即,在這個例子中,29個分簇放不下119,175 B,就得分30個分簇,也就是122,880 bytes 了。

 

固然,若是是在採用1000進制的 MAC 上,文件大小是119K,command i 會看到:

size: 119,175 bytes (123 KB on disk)

 

 

 

參考連接:https://higoge.github.io/2015/06/23/basic01/

相關文章
相關標籤/搜索