易混淆的进制和文件大小(比特、字节、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/