计算机科学的重要抽象举例
l 软件
l 算法:巧妙的信息变换方法
l 程序:算法的代码实现
l 进程:运行时的程序
l 指令:程序的最小单位,计算机能够直接执行
l 硬件
l 指令流水线,所有指令都由这一种机制执行
l 指令流水线由若干时钟周期组成
l 时序电路与自动机:说明每一个时钟周期的操作
l 由组合电路与存储单元组成,理论上等同于图灵机
l 组合电路:实现二值逻辑,布尔逻辑
符号有窍门
二进制补码例子:-127到127的整数加法
l 直截了当的表示
§ 需要8比特,27=128,以及1比特表示正负
§ 63 = 00111111,64 = 01000000
§ (-63) = 10111111,(-64) = 11000000
§ 63 + 64 = 00111111 + 01000000 = 01111111 = 127
§ (-63) + (-64) = 10111111 + 11000000 = 11111111 = (-127) § 63 + (-63) = 00111111 + 10111111 = 11111110 = (-126) 错!
l 补码表示
§ 负数:绝对值的逐位取反,然后加00000001,即从最低一位加1
§ (-63) = 00111111逐位取反 + 00000001 = 11000000 + 00000001
= 11000001
§ 63 + (-63) = 00111111 + 11000001 = 00000000 = 0 正确!
l 溢出:127+1=? (-127)+(-1)=?
理解:计算机自动执行由离散步骤组
成的计算过程
l 计算过程刻画:
l 一个计算过程是解决某个问题的有限个计算步骤的执行序列。
l 计算过程有一个起始步骤(第一步骤)。
l 每个步骤执行一个操作,然后进行到下一步骤。
l 每个操作可以是一个算术逻辑运算操作,也可以是一个访存操作、一个跳转
操作、或是一个输入输出操作。它们都可被视为数字符号变换操作。
l 下一步骤可以是顺序下一步骤,也可以是跳转操作的目的步骤。
l 当不存在下一步骤时,计算过程终止。
l 计算思维要点:
“精准地描述信息变换过程的操
作序列,并有效地解决问题”是如何体现的?
l 精准性在于(1)比特精准地定义该问题涉及的数字符号、操作和步骤;(2)
每个符号、操作、步骤要足够能行
l 有效性体现于:除了输入输出操作之外,计算过程的所有步骤和操作在计算机
中自动执行