`

计算机中信息的处理

 
阅读更多

         从接触计算机到现在,碰到数的处理着一章就头大,没有好好到思考理解过,为了仔细到巩固这一章到知识,今天好好复习一 下。主要包括以下几个内容:

          (1)信息的存储:

          (2)数的计算

          (3)位计算

          (4)逻辑计算

          (5)字符到存储

          (6)图像和视频到存储

          (7)可执行文件到存储和执行

要思考的问题:

为什么指针的长度和字长一样?

寻址的最小单位是什么?bit是如何寻址和处理的?

二进制的故事:从织布机到计算机

------------------------------------------------------------------------------------

一般认为,第一台现代电子计算机是ENIAC,诞生在1946年美国的宾夕法尼亚大学。但现代计算机的历史绝不是从这时
才开始的。在此之前已经存在一大堆理论储备或先驱。如维纳的控制论,阿坦那索夫的ABC,香家的信息论, “图灵机”,
制表机,布尔函数,巴比奇的分析机……再接着往前追溯,我们的第一个主角织布机就闪亮登场了。

此君全名“雅卡尔织布机”。19世纪早期法国里昂是世界闻名的丝织之都,那里出产的绸锦缎图案绚丽,精美绝伦。但美丽
的背后,却是织工们使用老式手工提花机,辛辛苦苦地将一根根丝线提起、放下。终于,一个叫雅卡尔的英雄带着它的最
新发明诞生了。他的织布机革命性地用预先打孔的卡片来控制织物的编织式样,速度比老式手工提花机快了25倍。法国皇帝
拿破仑龙颜大悦,特别嘉奖了这位发明英雄,还允许他收取专利费!

还有另一条线索。19世纪末,美国调查局的霍尔瑞斯为人口统计头痛不已。他和同事们用手摇计算机“摇”得满头大汗,一天
下来,也统计不出几张表格的数据。后来他离开了调查局,决心发明一种机器协助统计。正是雅卡尔的打孔卡片,给了他
决定性的灵感。他用发明出来的打孔制表机,用1年时间就完成了原来至少需要十年才能完成的统计任务。这就是科技的
力量!大名鼎鼎的IBM公司就是1924年靠销售这种机器起家的。

--------------------------------------------------------------------------------

 

有兴趣的同学可以绕道这里:大话计算机的源头:织布机和八卦

 

        我们知道数在计算机当中是以二进制的形式保存的,包括在硬盘上,内存中,数据总线控制总线上都是二进制上。因为电路中只有高低电平2个状态,所以最适合用二进制来表示。人类有10个手指,所以对十到认识最为直观、直接,人类采用了十进制作为最常用到计数方式。单纯的来靠位计算,太小了。Intel公司最早的4044cpu支持4位bit运算,其后的8086、8088、80286、80386等都支持8bit或者8bit倍数的cpu。常用的单位:

bit :BInary digiT(二进制数位)的缩写,1个二进制位

byte(字节):8个二进制位

字:是指CPU一次能处理的二进制的长度,比如现在32位cpu的字长为32位。64位cpu的字长为64位。字长也说明了CPU处理信息的能力。字长也指明了整数和指针的大小。

TODO :各个语言中和CPU支持的数据类型的对应关系图。

(二)信息的存储

       计算机和“ 雅卡尔织布机 ”的一个共同之处就是使用预先编制好的程序来支持自身的运行。织布机的程序是打孔的卡带,通过固定间隔的位置是否有孔来决定是否提线,来控制颜色和纹理。计算机其实也是同样的道理,通过上面的知识我们了解了计算机的bit、byte、字等信息,计算机的存储就是靠每个bit是0还是1实现的。我们来做个例子:

      计算机支持的文件我这样理解,分为2种:一种是可以被计算机直接执行的文件,我们称之为可执行文件,它通常是命令和支持他运行的数据的集合,第二类是被可执行文件运行的文件,比如我们安装的从微软官方下载的Office安装文件,安装后的Word软件是可执行文件。我们用Word写的论文、博客是Word来解析的。

     我们用一个写字本下来 hello word保存,然后用Binary Viewer查看一下我们保存的文件的信息可以看到如下内容:

    那我们在看看看Notepad.exe在计算机是如何存储的呢?我们用BinaryViewer查看下

 

还有图片文件,视频文件等等各种文件都是这些0和1的组合。至于这些二进制是怎么转化为我们看到的hello word呢?Notepad是如何被计算机加载执行的我们稍后来研究。

 

(三)数的计算

从上面的历史我们可以了解到计算机的发明之处计算是其主要目的,乃至于今天大数据计算仍是我们研究的重点。

 加法:

       比如:1+2              

      0000 0001

      0000 0010

-----------------------

      0000 0011

    如果溢出怎么处理

 补码的求法:符号位不变,各位取反然后加1 。补码的计算式可逆的。

  减法:2-1  = 2+(-1)

        0000 0010

        1111 1111

--------------------------

        0000 0001 

 结果为1

为什么要有补码?补码是怎么来的?

  乘法:

 

  除法:

  逻辑运算

  移位操作

  其他bit操作

 

-----------------------------------------------------------------------------------------------------

知识点回忆

原码:是数据的二进制的定点表示:例如1的原码是 0000 0001 -1的二进制表示 1000 0001 

小数的二进制表示: 0.01

反码:

补码:

 

参考资料:

深入理解计算机系统

 

 

 

 

  • 大小: 12.4 KB
  • 大小: 1.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics