一、绪论
1.1 图灵模型
Alan Turing在1937年首次提出了一种通用计算设备的设想,他设想所有的计算都能在一种特殊的机器上执行,这就是现在所说的图灵机。但图灵机只是一种数学上的描述,并不是一种真正的机器。
1.1.1 数据处理器
在讨论图灵模型之前,我们先把计算机定义为数据处理器。数据处理器是一种黑盒子,输入数据经过计算机处理得到我们想要的输出,但是我们并不清楚计算机的内部情况。
但数据处理器的定义过于广泛,便携式计算器也符合这种定义 .并且定义中没有指出计算机能够处理的数据的类型以及是否能处理一种以上的类型。一些用于专门用途的机器也符合定义,但是如今我们对计算机的理解应该是一种通用的机器,它能够完成许多不同的工作。
1.1.2 可编程数据处理器
图灵模型是一种适用于通用计算机的更好模型。 它增加了一个额外的元素(程序)到计算机中。程序是告诉计算机对数据处理的指令集合。
输出数据取决于输入数据和程序。相同的输入 ,不同的程序会输出不同结果;相同的程序,不同的输入会输出不同结果;相同的输入,相同的程序会输出相同的结果。
1.1.3 通用图灵机
通用图灵机是对现代计算机的首次描述,该机器只要提供了合适的程序就能做任何运算。
1.2 冯 · 诺依曼模型
基于通用图灵机的计算机都是在存储器中存储数据。冯诺依曼在1944-1945年间指出,程序和数据在逻辑上是相同的,因此程序也能存储在存储器中。
1.2.1 四个子系统
存储器:用来存储程序和数据。
算术逻辑单元:用来进行算术和逻辑运算。
控制单元:用来对存储器、算术逻辑单元、输入输出等子系统进行控制操作。
输入 / 输出:输入子系统负责从计算机外部接收数据和程序,输出子系统负责将计算机处理好的结果输出到计算机外部。
1.2.2 存储程序概念
冯诺依曼模型要求程序必须存储在存储器中。这和早期只有数据是存储在存储器中的计算机结构完全不同,程序在早期的计算机中体现为操作一系列的开关或改变其配线。现代计算机的存储单元用来存储程序和数据,这意味着程序和数据应该有相同的格式,实际上它们都是以位模式(0和1序列)存储在内存中。
1.2.3 指令的顺序执行
冯诺依曼模型中的一段程序是由数量有限的一组指令组成。控制单元从内存中提取一条指令,解释指令,接着执行指令,也就是说指令是一条接着一条顺序执行的。指令的顺序执行是基于冯诺依曼模型的计算机的初始条件。
1.3 计算机组成部分
我们可以认为计算机由三大部分组成:计算机硬件、数据、计算机软件。
1.3.1 计算机硬件
当今计算机硬件基于冯诺依曼模型,包含四个部分。
1.3.2 数据
存储数据:冯诺依曼模型并没有定义如何存储数据。如果一台计算机是电子设备,最好的存储方式应该是电子信号,例如电子信号的出现和消失来表示不同的状态(0和1)。
组织数据:尽管数据只能以一种形式(位模式)存储在计算机内部,但在计算机外部却可以有不同的形式(数据结构)。
1.3.3 计算机软件
图灵或冯诺依曼模型的主要特征是程序的概念。在早期的计算机中,编程指操作一系列开关或改变配线。
在冯诺依曼模型中,程序必须存储在存储器中,并且程序必须是有序的指令集。为什么程序必须由不同的指令构成,这是因为如今计算机能够完成成千上万的任务,如果这些任务的程序之间没有任何公用段,那么编程将变得十分困难,通过指令集可以将编程简化。
算法:程序包含一系列的指令执行使得编程成为可能,程序员通过指令集中的指令组合完成特定的运算任务,按照有序指令解决问题的的方法就是算法。
语言:早期只有机器语言一种计算机语言,程序员依靠写指令的方式(位模式)来编写程序,但是后来随着程序越来越大,这种方式枯燥且容易出错,就出现了更高级的语言。
软件工程:指结构化程序的编写与设计。今天,它不仅仅描述完成某一任务的应用程序,还包括程序设计中应该严格遵守的原理和规则。
操作系统:在编程中,有些指令几乎会在所有的程序中用到,如果只编写一次就能用于所有程序,那么编程的效率就会大大提高,这就出现了操作系统的概念。操作系统最初是为程序访问计算机部件提供方便的一种管理程序,今天操作系统能完成更多的工作。
二、数字系统
数字系统定义了如何用独特的符号表示一个数字。
2.1 位置化数字系统
位置化数字系统中,符号所处的位置决定了它表示的值,在位置化数字系统中,数字表示为:
它的值是:
其中, 是一套符号集,
是底(或基数),它等于符号集中的符号总数。其中,
和
是表示数字分数部分和整数部分的符号。
的非负数幂表示该数字的整数部分,负数幂表示小数部分。
表示该数字可正可负。
十进制系统:,整数和实数的表示都与上面的定义一致。例如,
的值为
,正号、括号和底在平时省略。一个
位十进制整数的最大值为
。
二进制系统:,整数和实数的表示都与上面的定义一致。例如,
的值为
。一个
位二进制整数的最大值为
.
十六进制、八进制系统:二进制虽然用于计算机内部存储,但是在外部表示数字并不方便,又由于十进制与二进制之间并无直接联系,所以发明了了十六进制和八进制,为了在外部更方便的表示数字且容易转换。十六进制:,由于一个特定符号只能表示一个数字(为了避免歧义),所以 10-15 由字母表示。八进制:
。数字的表示和求值等均与上面类似,就不再细写。
其他进制转换十进制:这种转换是很简单的,利用上面的定义,直接对其他进制的数字进行求值即可。
十进制转换其他进制:
十进制整数为源,目标进制为底。每次用底除源得到的结果都直接放在上一次得到结果的左边。所有进制转换的步骤都是相同的。
十进制的小数部分为源,目标进制为底。用底乘源得到结果的整数部分放在上一次得到的结果的右边。所有进制的转换步骤都是相同的。
2.2 非位置化数字系统
该系统的数字表示为:
它的值为:
非位置化数字系统中符号的值是固定的,与它所在的位置无关。罗马数字系统就是一个典型的非位置化数字系统。