计算机世界的基础知识之-位、比特和神秘的1024

缘起

       今天又被身边的朋友问到了,为什么他买的1TB的固态硬盘,实际空间只有931GB,是不是买到了假货……想到不久之前,还有一众计算机培训机构出来的小伙伴们,也不理解这个问题,那我正好借这个机会,梳理一下计算机的最基础的知识,正好也算是基础系列的开篇吧。

现实生活中的各种进制

       进制,我的理解就是一种计数的“规则”,而为了人的使用方便而制定的。比如我们人,因为天生就有十根手指头,所以十进制就是人们最熟悉的,也是应用最广泛的进制。

       当然,也有其他的进制,比如1天24个小时,那么“天”这个概念,就是24进制。1小时有60分,一分钟有60秒,这些又是六十进制。

       当然,生活中还会存在一些其他的奇奇怪怪的进制,比如一副扑克牌54张,那么这就是54进制,1年365天,所以又是365进制等等。

       总结成一句话,就是满XX就进一位,就是一种进制。

计算机与二进制

       在计算机系统中(比如内存/硬盘的容量、内存地址、网络通信等等)都使用二进制。为什么是二进制而不是其它的进制?我想这是现代的计算机的硬件原理造就的。因为电路有且只有“通、断”两种状态(不严谨,暂且这么理解)也就是“0和1”两个最基础的状态,因此,使用二进制是为了方便计算机处理。

       当然,二进制的效率并不一定是最好的,据说大毛曾经有过研究过三进制的计算机,我不是数学大佬,那些科学的论证也看不太懂,总之,目前整个世界最最主流的,还是处理二进制数据的计算机。

位(bit)和字节(Byte)和神秘的1024

       位(英文:bit)翻译为比特,也比特币的比特:-)。在真实的世界,对一个数字,可以划分为个位、十位、百位、千位、万位……,我们祖先的伟大发明-珠算,每一列算珠就对应着不同的位。

对于计算机来说1比特就是最小的信息存储的单位,8个bit组成了一个字节(Byte)为什么是8个比特算1个字节?我没有仔细查证,但我想应该是最初的8080的CPU,或者FC的游戏机用的6502 CPU,一次最多能处理8个bit的数据,所以小时候也被称作8位机,而后来的世嘉MD 用的摩托罗拉68000系列的CPU,一次可以处理16bit的数据,外壳上还有着大大的16bit的标志,小时候也被叫做16位机。

       总之,字节(Byte)是计算机能够处理的最小的信息单元了。一个字节由8个比特位组成,一个位只能包含0或1两个状态,组合下来,一个字节能表达的信息,用人类的十进制来说,就是0-255一共256种“状态”。

注意:比特(bit)和字节(Byte)都是字母B开头,通常用小写字母b表示比特,俗称小b,大写字母B表示字节,俗称大B。

       有了字节的概念,后面又继续烧脑了。因为计算机的世界都是二进制的,所以在计算的时候,是以1024为进位的,我理解是210 =十进制的1024。所以计算机中的进制计算可以表示为:

1KB=1024Byte      1024KB=1MByte   1024MB=1GByte   1024GB=1TByte 

       注意:基础的单位,都是大B也就是字节。

容量减少之谜

       回到最初的问题,为什么标注1TB的硬盘,实际可用空间只有931GB?因为设备厂商为了计算方便,也为了非计算机专业人员的理解,通常是用人们熟悉的1000作为进制的,而实际上上计算机的进制是以1024为基础的。我们可以换算一下:

       厂商计算的方式:1TB:1000*1000*1000*1000=1000000000000(1千亿个字节)

换做计算机的1024进制就是1000000000000/1024/1024/1024约等于931.32 GB

       这就是这个谜团的根源。其实,某些厂商会因为怕被投诉虚标容量,会用很小的字体在包装或者说明书上标识,只不过和很多保险条款一样,很难被发现,也很少有人注意,但不能说人家没声明...果然世界还是真实的呀。

       另外:以上这些其实还适用于宽带的计算。比如某宽带号称300M(兆),其实也是有坑的。他们实际指的是300Mbit/秒的速率,注意是小b,也就是比特哟,而且再加上也是按照人们习惯的10进制算的,而实际的计算机浏览器或者其他下载工具,是按照计算机的1024进制,而且是大B来显示和计算的。

套用硬盘容量的的计算方法:

宽带厂商的标识,注意除8从比特换算成字节:(300*1000*1000)/8= 37500000字节/秒

计算机的方法:37500000/1024/1024约等于35.76MB/秒

也就是说,所谓300M的宽带,下载的速度最高也就35.76MB/秒。当然,这是极限理论速度,还要考虑到运营商通常不会告知的上行和下行(上传和下载)的带宽是不一致的,以及网络传输背后的延迟和各种损耗等等,通常在10%-20%左右吧,根据这些经验,所谓的300M的宽带,实际下载速度,即使连接了很快的网站,实际下载也就是25-30MB左右的样子,上传的话,一般就是下载速率的十分之一,所以上传也就2.5-3.0MB/s。你学废了吗:-p

后续的扩展

       花了很大的篇幅和力气,终于搞清了一个看似稀松平常的问题。实际上通过这个小问题的细节,引出了计算机的位、比特、进制、1024、等等知识点。这些概念很容易混淆,但也是计算机的基础。有了这些最基础的概念,后续的十六进制、内存寻址和内容的操作、数据流等概念,以及引申出的序列化、反序列化等等概念。这一切后续概念的基础,都是以二进制的位,都是以字节为基础的。

       能看到这里的各位,相信一定是看懂了,至少是对这些基础感兴趣的吧?欢迎大家多多点赞和评论哟。希望能帮到大家,与大家一起共勉!

参考信息

https://zhuanlan.zhihu.com/p/263043369

  • 23
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值