科普:字节的奥秘

发表于2016-03-01
评论0 375浏览

第二章 字节的奥秘

              在数码产品中,最常见的名词就是字节了。不管是U盘容量、手机存储空间,还是网络带宽,下载速度,都会涉及所谓字节这个单位。但到底字节是一个什么东西呢?本章就为你说明这个问题。

2.1阴阳八卦和十个手指头

2.1.1假如人类是四趾动物

              数码产品与数学的关联非常深,而数学又是由数字组成的学问,所以我们现在数字开始说。在世界上,所有民族的数字单位几乎都是一样的,就是分为十个数字:一、二、三、四、五、六、七、八、九、十。许多人平时可能都不会去考虑,为何我们的数字会是十个,而不是七个,或者八个呢?事实上,如果人类和米老鼠一样是四个手指;或者人类是从鸟类进化来的鸟人,拥有四个指头,那么这个世界上的数字也许就只有从一到八了。因为原始人类社会中,由于每个人有十个手指,因此在使用数字的时候,最小的一组数字单位就正好用一个人的全部手指来充当。这样作为最小的一组数字,造成了数字的进位就以十为基础。所以十进制,仅仅是和使用数字的人,习惯使用的算术工具有关系而已;而数字本身,是可以用任意的进制的。

http://www.shiwan001.com/images/article/14232133346243.jpg

[鸟类的脚趾只有四个]

2.1.2洞悉本质的老子

数字是可以用任意进制的,如果我们要发明一种数字最少的计算方法,可以最少只用几个数字了?答案是。对于计算机来说,它们天生都是两趾的:电压分高、低;磁极分南、北;电流有通、断,所以二进制是现在计算机的基础进制。也就是说,只要有01两个数字,就可以表达世界上一切数目。这个观点乍一听有点不可思议:既然我们可以只用两个数字就可以了,为何还要发明出另外八个数字呢?其实中国人的先哲中,有一位早就说明这个道理,他就是老子,他写道:道生一、一生二,二生三,三生万物。意思大概是阴阳两种事物,可以组合表达出万事万物。所以在八卦的图形上,阴阳表达为横线,中间有断开的是阴,没断开的是阳。八卦则由三根这种代表阴阳的横线组成,不同的八种三根横线的组合,构成了八个不同的含义。这八个卦象,人们认为可以表达万事万物。在二进制来说,我们可以看成阴是0,阳是1,这样3位二进制数,刚好能容纳0-7一共8个数字。对于这样的二进制数,每条横线是一个数字单位,成为,英文是bit比如表达十进制里面的7,需要用三个二进制数表达:1,1,1(阳阳阳),这里就是用了三个的二进制数。如果你要表达更大的数目,就需要用更多的。我们现在数码科技中使用的最小信息单位,也就是。而字节(英文叫byte),则是由八个组合成的另外一个单位。

http://www.98ing.com/upload/ck/images/%E5%85%88%E5%A4%A9%E5%85%AB%E5%8D%A6.jpg

[三位二进制数表示的8个序列的八卦]

2.1.3最小信号盒子

在第一章中,我们讲过,世界上所有的信息都能用数字来表达。我们的数字又是用最小数字的方法——二进制来构成的,所以当需要说明一串用来表达信息的数字,它们有多大的时候,我们可以说这串数字有多少个。如1000100111111110这串二进制数(可能表达的是两个英文字母,也可能是小于65535的一个正整数),我们通过数一下他的长度,就可以说它有16“的长度。但是16位这么长的数,才表达两个字符或一个六万五以内整数,显得不太好理解,所以我们一般较少直接用这个最小的数码单位,而是用另外一个更容易理解的单位——“字节。由于每八个可表达一个拉丁文的字符(拉丁字母表才几十个字,汉字就不行了),所以我们就喜欢把八个看成一个单位字节,说一段数字有多少个字节,就表示这段数字能表达多少个(英文字)。尽管数字可表达的内容不止是文字,但是字节还是因为人们觉得形象而成为数字信息的单位。我们可以把每个字节看成一个小小的数字盒子,里面可以放八个“0”“1”数字,计算机就可以这样以一个个的数字盒子来处理信息了。假如有一个盒子里面没装满,一般就把空位(高位)填上0。现在我们用的电脑、手机,几乎都是以字节为单位处理信息的,所以购买电脑、手机产品时、标签上的标记的单位,如16Gbytes, 256G bytes都用bytes字节做单位。但是通信带宽,还是习惯用bit位单位,如100Mbit/S(网卡速度)、12Mbit/SADSL带宽)。有时候我们会奇怪:明明写着带宽是12M/秒,为什么下载速度只有1M/秒了?其实是因为两个计算的单位不一样,带宽的标记单位是12Mbit/秒其实等于1.5Mbyte/秒,所以下载速度最多是一点几M“字节每秒。电脑上显示的基本都是byte字节为单位的嘛。早期的电视游戏卡带,号称16M大容量的游戏,却可以拷贝到23.5寸软盘(1.44M容量)中,也是这个道理,因为卡带的容量单位是,而软盘的容量单位是字节16Mbit仅仅只有2Mbyte而已,2张软盘绰绰有余了。

2.2 KMGT

2.2.1容量和速度的单位

              在各种各样的数码产品中,一般都会有两个指标:一是速度,一是容量。以U盘为例,会写“256M”,这个指的是容量,意思是它可以存放256M个字节的这么长数字。其中M是一个数学单位,是英文的百万million的缩写,256M就是256x1,000,000个字节的数字。除了M,我们还常见到K,G,T等缩写,Kkilo,也就是的意思,1000K=1MG1000MT1000G。现在好多硬盘的容量都有几个T,对比最早的40M容量的硬盘,大了几百万倍。说回U盘,我们常会以容量来表示他的特性,但是其实还有一个速度的指标。在U盘上我们细心点看标签,有些会写上“USB2.0”“USB3.0”,这个就是表示速度的指标。USB2.0标准,表示电脑可以以每秒30M个字节的速度,与U盘传输数据。标准越高,传输的速度越快,我们需要等待往U盘读写文件的哦时间就越短。硬盘、内存和U盘类似,都有一个容量的指标和速度的指标。另外一些硬件如网卡,指标主要就是速度,如100Mbit/S,意思就是网卡每秒能传输10x1,000,000个位(不是字节)。有趣的是,显示卡的主要指标往往是容量,因为卡上的显示内存越大,显示的速度就越快,现在带有几个G bytes的显卡很常见。最后说说CPU,一般我们认为CPU只有速度指标,如33MHz,就是每秒运算33x1,000,000次。其实CPU也有容量,我们现在有32CPU,还有64CPU,早期的CPU还有8位,16位的,这个数就是指,每次预算能处理多长容量的数字。8位二进制最大就是0255,如果程序要计算大于255的整数,就需要多次运算。早期16位游戏机里,常常用65535作为一个数的最大值,比如杀死最终BOSS获得经验值就是65535点,这样设计可以最好的利用其16CPU;但是现在大部分32位、64CPU的电脑里,计算65535还是655350都只需要一个计算周期,就没必要把数字限制到65535以内了。(当然以前的游戏缩小数字范围还有考虑减少卡带容量的因素)除了CPU数,CPU往往还带有二级缓存、三级缓存,这些缓存就是存放数据的临时空间,越大越有利于速度提高,所以CPU指标上也有这些缓存的容量指标。

2.2.2 1M有多大

              刚刚我们提到了K¥M¥G¥T这些缩写,但是这些字眼并不能给我们直观的认识——这些数据说代表的规模。我们可以先以文字来看,每1M字节的容量能存放1百万字的英文文章,这里的是字母而非单词。对于中文来说,一般需要两个字节来表达一个汉字,所以1M Byte能存放五十万字的汉语文章。《水浒传》大概五十六万字,在电脑里,一张薄薄的软盘就可以放下了。如果你用光盘(CD-ROM),一般的光盘都有700M Bytes的容量,可以存放50x700,大概三亿五千万字的文章,而《永乐大典》的字数也只有3.7亿字而已。《四库全书》号称世界上字数最多的书,大概有10亿个汉字,4张普通光盘,或者一张DVD基本就能装下。你看,1M是不是很

              但是,如果你用1M空间存放图片,就会发现1M太小了,因为一张彩色照片,假如是1024X768个点组成(这个分辨率是老式显示器的),而每个点按256种颜色来绘制(256色几乎是卡通画的色彩才能这么少),那么一张照片就会占用1024x768x256个字节,大概2.4M1M空间连一张质量很差的照片都放不下。所以,数据容量的大小不是绝对的,而是看说存放的内容来顶顶哦。事实上,1M空间是可以存放更多的内容的,办法就是针对存放的数据,使用不同的数字魔法——压缩算法,从而使同样的1M空间,可以存放五百万字的文章,或者十张彩色图片,又或者1分钟的音乐。节省空间的压缩,要付出CPU计算时间为代价,这就是计算机世界的时空交换原则:你要节省空间,就要付出时间,反之亦然。程序中的所有优化,在相同硬件的情况下,一般都是按使用需求灵活平衡时间和空间而得到的结果。下一章,我们就会讨论可以让数字信息进行时空变化的方法——各种有用的算法。

http://ww4.sinaimg.cn/mw690/7cc829d3gw1eije1jzx6lj20c8084q2v.jpg

[3.5寸软盘]

http://gaitaobao4.alicdn.com/tfscom/i4/TB12Vr6HXXXXXX7XFXXXXXXXXXX_!!0-item_pic.jpg_310x310.jpg

[50万字的书]

C:UserswadehanDesktopsunset1024x768.bmp

[1024x768的图片2M容量]

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

标签:

游戏学院公众号二维码
腾讯游戏学院
微信公众号

提供更专业的游戏知识学习平台