今天浏览Tim里的电脑文件时突然发现一个AMR文件,是一段音频。意外的用编程软件打开了,发现了约2W行的16进制数,如下:
随后就联想到了之前所学的计算机存储数据的原理。我们都知道,计算机的底层是只能识别0和1(即是和否)的电子元件,观察了这两万行数据,断定,百分之99.9的概率这是由16进制组成的文件。这么多,20067行多一行不到,现在我们来从文件存储的根源来对文件的大小进行一次计算。
我们把这么多行,可以记作20067.625行吧,每行八组数据,每组有4个16进制数,相当于每行有32个16进制的数,也就是128个二进制的数,然后,重点来了,用20067.625*128,得到2568656个二进制数,这就是这个文件存储的二进制数的含量了,接下来开始计算文件的大小。2568656个bit值,因为1Byte等于8个bit值,所以这里相当于321082个Byte。(2568656/8得到的)
插句话,Byte是我们计算占用内存的基本单位,我们平时所说的百兆带宽,其实指的是100Mbits/s的传输速率,换算成我们所熟知的流量计算,也就是12.5MBytes/s的传输速率。
接下来回到正题,刚刚说到321082个Byte,接下来,再科普一个小知识,计算机里的1kB指的是1024B,而非1000B,现在知道这个的人也已经越来越多了。所以这里的321082Bytes也就相当于313.566KB,(321082/1024得到的结果),接下来看一下文件大小,看图,别看我:
314kB就是313.5566kB四舍五入得来的结果。好了,这就是文件大小的计算方式。