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

字节和比特

byte(字节) 缩写 B,bit (比特)缩写 b。

bit 是计算机中最小的单位,常用于带宽。

byte 是信息计量单位,常用于文件大小。

进制

1byte = 8 bit

往上 KB, MB, GB, TB, PB...的进制分为1024 和1000,根据场景选用。

这种混用是历史原因造成的,详见下文:

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.

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.

即,1024用于计算机领域(如:CPU缓存大小),1000用于信息技术(如:数据传输速率、磁盘存储空间)。

后来未免混淆,1024进制的KB MB GB TB,可写为 KiB MiB GiB ,不过普及率不高。

易混淆的场景

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/

________你所记的,都是假的。
原文地址:https://www.cnblogs.com/pudding-ai/p/6063127.html