计算机中的数据存在形式1


进制

进制有许许多多,如计算机、电路的二进制(断电、通电),时间的60进制(时分秒)、12进制(12小时制)、24进制(24小时制)月份的28、30、31进制。年份的365、366进制。数学计数的10进制,计算机中的8进制,流量的1024进制等等…

进制的转换与我们的生活息息相关。

|十进制 |二进制 |
|——————————-|
|….. |….. |
|0.125 | 0.001 |
|0.25 | 0.01 |
|0.5 | 0.1 |
|0 | 0 |
|1 | 1 |
|2 | 10 |
|3 | 11 |
|4 | 100 |
|5 | 101 |
|6 | 110 |
|7 | 111 |
|8 | 1000 |
|16 | 10000 |
|32 | 100000 |
|64 | 1000000 |
|128 | 10000000 |
|256 | 1 00000000 |
|512 | 10 00000000 |
|1024 | 100 00000000 |
|2048 | 1000 00000000 |
|4096 | 10000 00000000 |
|8192 | 100000 00000000 |
|16384 | 1000000 00000000 |
|32768 | 10000000 00000000 |
|65536 | 10000000 00000000 |
|131072 | 1 00000000 00000000 |
|262144 | 10 00000000 00000000 |
|524288 | 100 00000000 00000000 |
|1048576|1000 00000000 00000000 |

计算机中的进制表示

计算机中的数据都是以0101的形式存储的。因为它识别(断电与通电)。0和1不是数字,而是占的一个”位”。系统中规定8个位为一个字节。所有的整数都可以用二进制表示,但小数部分就没办法全部表示了。例如:0.5的二进制可以表示为0.1(0.5是1的一半,这是十进制中的理解方法。类比,我们可以得到0.1是二进制中的1的一半。继续类比推理的话,我们可以得到0.25的二进制为0.01,0.125的二进制为0.001,0.875呢?二进制就是0.111。)

那么怎么计算的?
假设有一个数5.375
它的整数部分5用二进制表示为101
小数部分则有公式可以计算。

取小数部分0.375,0.375×2=0.75
因为0.75<1,所以十分位用0表示
接着继续取小数部分0.75,0.75×2=1.5
因为1.5>1,所以百分位用1表示。  
继续重复刚刚的步骤取小数部分0.5×2=1.0
因为1.0=1  
所以千分位得到的数字是1  
所以最后转换的结果是101.011

前面说过并不是所有的小数都能用二进制表示。例如1/3,我们知道十进制里,它是0.333…循环在二进制中就无法表示了。在编程语言中,我们计算1/3再×3的话,只能得到0.999…(会出现精度丢失)所以我们需要指明精度。

计算机的最小储存单位是位’b’(bit),接下就是字节’B’(byte)了。
8b=1B
其他常用的单位还有千字节’K/KB’(kilobyte),1K=1024B,兆字节’M/MB’(Megabyte),1M=1024K,吉字节’G/GB’(Gigabyte)。

每个英文字母占一个字节,不同编码中,中文占的长度是不同的,通常中文占2个字节,utf-8字符集里,中文占3个字节。

我们知道计算机可以用0101储存这些信息,那么算盘呢?
答案当然是可以,算盘是通过二进制,五进制,十进制结合来处理信息的。
只要我们给算盘上的每个珠子以及它们的不同含义,它们就能储存不同的信息了。

假设有一张图片是800×600的大小(单位px),那么它的每一个像素都可以用二进制可以表示。从左上角(0,0)开始,记录每一个从左往右依次记录每一个像素的黑白颜色,假设屏幕大小为1440×900,那么第一行记录到(1439,0)后会到下一行继续记录,下一行就从(1440,0)继续记录了。知道將整副图记录完毕,下次调用的时候,按照记录的信息每个位置与位置的对应的颜色还原就可以了。

彩色(255色)的图片,没办法像黑白色那样简简单单的用01这2种状态来表示,所以我们需要储存比黑白图片多一点的信息,那就是颜色的编码。

图像能够储存,声音也一样可以。我们需要的是捕捉到声音。
还在学习的时候,物理老师就告诉过我们声音是通过振动产生的。我们想要储存声音,就需要捕捉振动,振动需要捕捉的是它振动的频率。
在网上下载歌曲的时候,我们可以看到一条信息,有损音质、无损音质。它们的区别就是码率的不同。记得前段时间,UC资讯中看到有损与无损的区别之一就是,它们之间储存的振动频率(码率,即每秒振动的频率的数量)不同。

视频的储存是建立在声音与图像的基础上的。每秒展现数帧的图像,就是小视频了。这时候的视频并没有声音。在前面提到的,捕捉声音可以每秒捕捉多少振幅,图像的展现是以秒为单位,声音的展现也是以秒为单位,如果在播放视频的同时,播放这一秒的声音,这就是有声视频了。將对应的视频与声音合并成一个文件,这就是视频了。电影也是如此。

我想,大家应该都玩过arp游戏什么的,手游什么的。这类游戏是通过控制来达到接下来的信息的展现。控制是一个输入信号。如果没有输入信号,整个游戏就像是在播放视频一样。我们通过判断输入信号改变输出结果。这就是游戏了。

系统

一个系统至少得有输入 输出 处理器 储存介质 控制器等几部份的存在才能称得上系统。

小明打电话对小智说:”小智,我现在不在公司,你去帮我拿下快递。谢谢!”

此时,小智接到电话,收到一个一个请求(输入),经过大脑(cpu)处理后。得到结论(放下手中的事,到公司门口,取快递,代保管,等小明回来后交还给他)。并加以行动(四肢受大脑控制)。

计算机是一个系统。虚拟世界也是一个系统。这些都是我们人创造出来的。

我们能看到物体,是因为我们的眼睛捕捉到了直射(太阳光),反射(各种物体)的光线。并对光线处理之后产生的结果。
既然人能做到,机器人也能。机器人的眼睛有光传感器,它也一样能捕捉到并加以处理。

我们能听到声音是因为我们捕捉到的声音是耳膜振动产生的。得到信息后经过大脑处理就得到了我们所听到的声音。
机器人也有耳朵,它的结构和我们不同,它有声音传感器。它捕捉到信息后也可以进行处理。

我们人有酸甜苦咸鲜等感觉。
机器人有各种传感器。

美国有研究机构在研究人脑,人脑里有无数神经元,每一个神经元都是一个cpu。他们似乎看到了一些规律,但却没有办法掌握。这些神经元之间有着我们暂时无法探索出来的规律与奥秘,并且在研究的过程中是在变动的。

我们从初始开始也不是什么都会,一切都是后天学习的成果。

如果能够將几亿的cpu集成到一个cpu上,机器人未尝不能达到人一样。像人一样学习、做事。只不过现在的工艺上来说,还达不到罢了。

题外话

我们能够开发出游戏,游戏是一个世界。里面有着角色,角色有着各种信息,受游戏玩家的控制而行动。我们相对游戏中的角色而言是高等智慧。

类推,我们也有可能受比我们更高等一层智慧的控制,这个世界、宇宙也许是它们创造的。而我们的行为受到它们的控制。

呃,这些都是题外话,虽然未尝不可能,但是如果真是如此,因为游戏可以重新来过,所以就不会存在世界末日这一说了。

但我们知道,这是不可能的。

新手一枚,对诸多事物了解得并不透彻,还望各位一起交流探讨。 :)


文章作者: 牟勇
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 牟勇 !
 上一篇
计算机中的数据存在形式2 计算机中的数据存在形式2
上一篇中提到了二进制与十进制的转化,以及身边的数据是如何保存在计算机中的。本次来谈谈另一种进制十六进制我们知道二进制是计算机所能识别的数字,但是计算机中的数据并不全都是以二进制储存的,因为二进制的储存能力有限,在上一篇中提到,系统规定8位为
2016-09-11
下一篇 
nodeJs打印图形 nodeJs打印图形
nodeJs打印图形首先声明一个变量,用来存放字符串var printStr = ''; 接下来声明一个函数用来定义要打印一行字符串; function printChar (char, col) { for (var i=0; i
2016-09-06
  目录