大学计算机第2章计算原理哈尔滨工业大学计算机科学与技术学院金野2020/7/152第2章计算原理2.1理解0和12.2图灵机-计算机的理论模型2.3冯诺依曼计算机2.4计算机语言与虚拟机器2.5信息表示与处理2020/7/15301灯泡亮/灭01线路通/断01电压高/低门开/关012.1理解0和1•“0”和“1”可以表示任何事物的两种状态成功和失败、对与错、真与假、阴与阳、表与里2020/7/1542.1理解0和1•“0”和“1”与《易经》–《易经》---最早以0、1来进行思想表述。•《易经》相关概念–六十四卦–八卦–爻(yao2)2020/7/155乾天坤地坎水震雷艮(gen)山巽(xun)风离火兑沼泽111000001110010101100011三位数码表八卦六位数码表六十四卦乾坤屯蒙需讼师比1111110000000100011000100101111110100000100100000和1表示易经的八卦、六十四卦2020/7/1560和1与《易经》•易经八卦与八个自然现象–天地山泽火水风雷•八卦抽象形成了本体概念–乾坤震坎离巽艮兑•本体概念可扩展应用范围–代数:乾一,兑二,离三,震四,巽五,坎六,艮七,坤八。–方位:乾南,坤北,离东,坎西,兑东南,震东北,巽西南,艮西北–阴阳:乾、坎、艮、震属阳卦其中艮为少男坎为中男震为长男;坤、兑、离、属阴卦其中:兑为少女离为中女巽为长女–……2020/7/1570和1与《易经》•《易经》是一种人工编码系统•《易经》是一种符号语义系统2020/7/1580和1与逻辑运算•逻辑运算:–操作数和结果都只能是真和假(1和0)。–位运算,无进、借位。例:人是会死的AND苏格拉底是人苏格拉底是会死的•逻辑运算符:–“与”(AND)–“或”(OR)–“非”(NOT)–“异或”(XOR)2020/7/159“与”运算:两把钥匙都有才能开门“与”运算两个操作数都为真时,结果为真;否则结果为假。0AND000AND101AND001AND112020/7/1510“或”运算:只要有任何一把钥匙便能开门“或”运算两个操作数有一个为真,结果就为真,否则为假。0OR000OR111OR011OR112020/7/1511NOT01NOT10“非”运算:非真即假,非假即真。“异或”运算0XOR000XOR111XOR011XOR10“异或”运算:两个操作数中有且只有一个为真时结果为真。2020/7/1512在计算机中的应用•利用逻辑运算实现算法功能;–对二进制码串进行变换;•逻辑运算构成条件,控制程序运行;–分支控制;–循环控制;2020/7/15130和1与进位制•进位制•二进制及其算术运算•二进制及其逻辑运算2020/7/1514数值信息的表示-进位制10210110010-110-2(245.25)十有0,1,2,3,4,5,6,7,8,9共十个数码;每个数码的位置决定了它的值——位权10i逢十进一、借一当十;(245.25)十=2×102+4×101+5×100+2×10-1+5×10-2•十进制(Decimal)位权数码基值2020/7/1515r进制N=(dn-1dn-2……d2d1d0.d-1d-2……d-m)r–有0,1,……,r-1共r个数码–数码的位置决定了数码的“权”:ri–逢r进一、借一当r、高数位的1相当于低数位的r–“r”----基值,r进制例如:12进制(月)24进制(昼夜)60进制(小时/分钟/秒)2020/7/1516•2进制(Binary):–由数码0和1组成;–位权2i–逢2进1,借1当2;•8进制(Octal):–由数码0,1,2,3,4,5,6,7–位权8i–逢8进1,借1当8;•16进制(Hexadecimal):–由数码0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F组成;–位权16i–逢16进1,借1当16计算机中常用的进制数2020/7/1517r进制到十进制的转换(245.25)16=2×162+4×161+5×160+2×16-1+5×16-2(245.25)8=2×82+4×81+5×80+2×8-1+5×8-2(101.11)2=1×22+0×21+1×20+1×2-1+1×2-2N=(dn-1dn-2……d2d1d0.d-1d-2……d-m)r--=1nmiiird=2020/7/1518整数部分乘基取整法直到小数部分为0取整数序列顺序除基取余法直到商为0将余数倒序十进制到r进制的转换小数部分.十进制到r进制的转换例:求215.423D=?B221521071d02531d12261d22130d3261d4230d5211d601d7低位高位整数部分小数部分乘以2得小数得整数0.42320.846d=00.84620.692d=10.69220.384d=10.38420.768d=00.76820.536d=1答:215.423D=11010111.01101B2020/7/1520乘除法运算可转为多次加减法运算来进行0+001+010+111+10加法运算0–001–011–100–11减法运算二进制的算术运算•算术运算规则–二进制算术运算是位相关运算,即逢二进一、借一当二2020/7/1521操作数运算符AB运算结果C与运算(AND)000010100111或运算(OR)000011101111非运算(NOT)01100110二进制的逻辑运算2020/7/1522二进制运算举例如:X=10111,Y=10011,则求:•XANDY=?•XORY=?•X+Y=?•X–Y=?2020/7/15230和1与编码•什么是编码?为什么用0和1编码?•数值如何编码?•字符如何编码?–英文–中文•多媒体信息如何编码?•其它信息如何编码?信息表示与处理2020/7/1524•编码:是以若干位数码或符号的不同组合来表示一组对象的方法;例1:0----男,1----女例2:000---星期一001---星期二010---星期三011---星期四100---星期五101---星期六110---星期日例3:学生的学号是对学生的编码。什么是编码?2020/7/1525编码的要求•编码具有以下三个主要特征–唯一性–时空性–规律性(易于记忆性)•编码的信息容量:能表示的不同对象总数。–7位电话号码的装机容量是10000000–八位二进制数最多能为256个对象编码;2020/7/1526•计算机中的信息均是用0和1表示的–0和1可以表示数值性信息,如整数、小数•二进位制/编码–0和1也可以表示非数值性信息,如文字和图片•编码任何信息只要能用0和1表示,就能利用计算机进行处理。计算机的世界里只有“0”和“1”2020/7/1527•BCD码:BinaryCodedDecimal(二–十进制编码)。–4位二进制数实现十个数字符号的编码。BCD码:十个数字符号的编码十进制01234BCD码00000001001000110100十进制56789BCD码010101100111100010012020/7/1528ASCII码—英文字符的编码ASCII码:美国国家标准局(ANSI)制定的美国标准信息交换码(AmericanStandardCodeforInformationInterchange)(1967年公布)–用7位编码,包括英文字母、数字和标点符号等共128个字符,用8位存储,最高位为0。–扩展ASCII码:8位编码,00h~7Fh定义与ASCII码一致;代码80h~FFh可定义成表示另外的字符。2020/7/1529•大写字母:41H~5AH(65~90)•小写字母:61H~7AH(97~122)•数字:30H~~39H(48~57)•换行符号(LF):0AH(10)•回车符号(CR):0DH(13)•空格(SPACE):20H(32)例:Iam12yearsold.对应ASCII码的十六进制形式:4920616D203132207965617273206F6C642E常用字符的ASCII码打印ASCII字符•Python语言()•打印BEL(二进制:0000111;十进制7)•printchr(7)•输出:Beep声•打印字符’a’•printchr(97)•输出:a•printbin(ord('a'))•输出:0b11000012020/7/1531•245的十进制记为245•245的二进制记为11110101•245的八进制记为365•245的十六进制记为F5•245的BCD码记为001001000101•245的ASCII码记为001100100011010000110101同一信息不同表示方法的对比2020/7/15320和1与电子元器件•与、或、非门的电路实现•电子元器件•加法器2020/7/1533•十进制:齿轮或具有十种稳定状态•二进制:具有两种稳定状态–继电器–电子管–晶体管–光子信号–量子比特–DNA分子01电压高/低01线路通/断元器件容易实现2020/7/1534UCC(+5V)R3.9kABFV1V2R3.9kBAFV2V1RVRCF(UI)UCC(+5v)A(UO)逻辑门实现与门或门非门2020/7/1535FAB(a)(b)&FAB(c)FAB+FAB(a)(b)FAB(c)≥1FABFA(a)FA(b)1FA(c)与门逻辑门符号表示或门非门FBFAFAABB1+异或门半加器逻辑图异或运算与运算逻辑门与电路CPU2020/7/1537一位全加器:计算两个数位的和并生成正确进位的电路(两个异或门+两个与门+一个或门)一位全加器逻辑图输入输出AiBiCi-1SiCi0000000110010100110110010101011100111111其中Ai为被加数,Bi为加数,相邻低位来的进位数为Ci-1,输出本位和为Si。向相邻高位进位数为Ci2020/7/15382.2图灵机-计算机的理论模型2.2.1图灵与图灵机2.2.2图灵机的思想2.2.3图灵机模型2020/7/15392.2.1图灵与图灵机•阿兰·图灵(1912-1954)–英国数学家–计算机逻辑学家–计算机科学之父–人工智能之父•1936年提出图灵机模型•ACM图灵奖:计算机界的“诺贝尔奖”2020/7/15402.2.2图灵机的思想•图灵机装置•基本动作可以这样表示图灵机:输入+当前状态==输出+后一状态.2020/7/1541•图灵机模型–输入集合–输出集合–内部状态–固定的程序•图灵机模型直观形象,清楚地解释了算法概念–采用有限的、机械的步骤解决具体的问题。2.2.3图灵机模型2020/7/15422.3冯诺依曼计算机2.3.1冯诺依曼计算机2.3.2计算机系统–硬件系统–软件系统–工作过程2020/7/15432.3.1冯诺依曼计算机•计算机由五大部件组成;•采用存储程序的方式;•程序能够自动执行;输入设备输出设备存储器运算器控制器输入数据输出结果输入程序程序:是指令序列的集合;指令:是计算机最基本的操作单位。CPU2020/7/1544•存储器•运算器•控制器•输入设备•输出设备运算器控制器内存储器外存储器输入设备输出设备控制台电源命令回答命令回答取出的数据存储的数据取出的命令命令/地址外部设备主机中央处理器(CPU)主机显示器软磁盘打印机鼠标键盘2.3.1冯诺依曼计算机2020/7/1545运算器存储器控制台电源控制器接通电源启动控制器工作发送指令地址取出的指令发送操作数地址取出的操作数通知运算器计算发送保存结果的地址保存结果计算机硬件工作过程2020/7/1546•硬件:硬件是指构成计算机的物理实体,看得见摸得着的设备。例:显示器、鼠标、键盘、音箱、主机……•软件:软件是指控制硬件按指定要求进行工作的由有序命令构成的程序。例:操作系统、音频播放器、上网软件……•硬件与软件的关系——人的肉体与灵魂