计算机科学引论课件01
合集下载
计算机科学引论讲稿01b

¾《计算机导论 》 [美]Roberta ¾《计算机导论 》 田原 主编 ¾《计算机导论 》 宫云战 主编 ¾《计算机导论习题与解答 》[美]托勒多(Toledo,R.A.)等著 ¾ etc.
¾书末《参考文献》
其他参考资源
网上数字图书馆及电子期刊
其他参考资源
超星数字图书馆
其他参考资源
超星数字图书馆
其他参考资源
4
教学内容安排
教学内容安排
其他参考文献:
¾《计算与算法导论》
[美]Russell L. Shackelford 著 章小莉 孙厚琴 汪永好 等译 电子工业出版社 2003年11月第1版
其他参考资源:
网络(internet)上的各种资源: ¾专题网站 ¾BBS、论坛、社区、博客 ¾网上图书馆(超星数字图书馆,etc.) ¾网上电子期刊 ¾etc.
6
课程内容的安排
关于教材及参考文献的作业 ¾通过网络(web、bbs、网上数字图书馆 etc.)查询并浏览几本相关教材和参考书; ¾分析对比其内容安排,给出简要评价。 ¾内容; ¾深度; ¾广度; ¾难度; ¾etc. ¾你认为那部更为适合作为我们的教材?
教学文件 课程教学大纲 教学进程(日历) 专业培养方案
“计算机科学与技术”、“网络工程”13级本科
课程背景
¾计算(Computing)技术作为现代技术的标志,已成 为世界各国许多经济增长的主要动力,计算领域也已 成为一个极其活跃的领域。 ¾计算学科正以令人惊异的速度发展并大大延伸到传 统的计算机科学的边界之外,成为一门范围极为宽广 的学科。 ¾如何认知这个学科引发了长期以来激烈的争论并极 大地影响着计算学科的发展和人才的培养 。
本科专业目录(2012)
大学本科计算机设计基础课件1引论、2基本定义

信息科学与技术学院 景红
17
数据的表达方式
s
255
为了存放或取出 数据,必须知道 存储空间的地址, 程序中通常采用 变量名来代表。
va
48
vb
37
┇
内存空间示意图
将数据赋值给变量,就是将数据存储到对应
的内存区域;调用变量,也就是取出该变量代表
的内存空间中的数据。
18
根据数据在程序运行的过程中是否可以改变分为:
信息科学与技术学院 景红
14
方括号内容可以省略 以int型为例,形式上它是数学中的
基本数据类型整统数以4。个但字实节际来上存,放由in于t型C+,+所编以译它系
的取值范围只限于[-21亿,21亿]
C++中保留C版只是为了支持 C程序。
15
基本数据类型
short int long
信息科学与技术学院 景红
***********\n"; *******\n"; ***\n";
号,怎么办?
cout<<"
*\n";
}
21
布尔型常量/字面量
布尔型数据的取值: 只有true和false 两种
cout<<" *****************************\n";
说明:
cout<<" *****************************\n";
cout<<endl;
cout<<" *****************************\n"; cout<<" ***************************\n";
计算机科学引论课件0PPT课件

算法的特性
一个好的算法应该具有可读性、正确 性、健壮性、可维护性和高效性等特 性。可读性要求算法易于理解,正确 性要求算法能够正确地解决问题,健 壮性要求算法能够处理异常情况,可 维护性要求算法易于修改和改进,高 效性要求算法在有限的时间内完成计 算任务。
算法的复杂度分析
算法的复杂度分析是评估算法性能的 重要手段。通过对算法的时间复杂度 和空间复杂度进行分析,可以了解算 法在不同情况下的性能表现,从而选 择更合适的算法来解决实际问题。
逻辑模型
逻辑模型是在概念模型的基础上进一步细化的数据模型, 用于描述数据的结构和操作,常见的有关系模型和面向对 象模型。
物理模型
物理模型是对数据在计算机中的存储和访问方式的描述, 包括数据的存储结构、数据的访问方式等。
关系数据库管理系统
关系数据库
关系数据库管理系统
关系数据库是一种基于关系的数据库,它 使用关系表来存储数据,每个表由行和列 组成。
全对于个人隐私保护、企业数据安全以及国安全的属性
计算机安全应具备保密性、完整性、可用性和可控性四个基本属性。
常见的计算机安全威胁
恶意软件
包括病毒、蠕虫、特洛伊木马等,这些软件会在用户不知 情的情况下,在其电脑上安装后门、收集用户信息,甚至 破坏用户数据。
身份盗用
指攻击者利用窃取到的用户个人信息,假冒用户身份进行 违法活动,这种行为会导致用户财产和精神损失。
高级语言
更接近自然语言,易于编写和理解,如C、Java、Python等。
脚本语言
主要用于自动化任务,如Shell脚本、JavaScript等。
编程的基本概念
变量
用于存储数据,可以随时修改。
数据类型
定义变量可以存储的数据类型,如整数、浮点数、 字符串等。
计算机科学导论第一章绪 论ppt课件

在宾尼法尼大学诞生,命名EDVAC(埃德瓦克). 存储原理、快240倍(1952核武器理论运算) 与此同时,同样类型的被称为EDSAC(埃德沙克)的 电子延迟存储自动计算机 由英国剑桥大学的 Maurice
Wilkes 制造产生.
28
国内第一台模拟电子计算机 1956年,东北大学教授李华天带领工作人员开发 研制出国内第一台模拟电子计算机。 全套设备占地面积 40 平方米,拥有 5 个 2.3 米高的
尽管可以有不同类型的存储器、不同类型的输入 / 输出 子系统等。在第5章我们将详细讨论计算机模型.
20
数据 Data
冯诺依曼模型将一台计算机定义为一台数据处理机。 它接收输入数据,处理并输出相应的结果。 存储数据:冯诺伊曼模型并没有清楚定义数据应如何 存储在计算机中。如果一台计算机是电子设备,最好的
Figure 1.5 冯.诺依曼模型
15
四个子系统 Four subsystems 存储器:用来存储的区域。在计算机的存储过程 中,用来存储程序和数据。 算术逻辑单元 : 进行计算和逻辑运算。 控制单元: 对存储器、ALU、I/O等子系统进行控 制操作。 输入输出单元 : 输入子系统负责从计算机外部接 收输入数据和程序。输出子系统负责将计算机的 处理结果输出到计算机外部。
16
存储的程序概念 The stored program concept
冯诺依曼模型要求程序必须存储在内存中.
与早期只有数据才存储在存储器中的计算机结构完全不同 :
完成某一任务的程序是通过操作一系列的开关或改变其配 线来实现的. 现代计算机的存储单元主要用来存储程序及其响应数据。 这意味着数据和程序应该具有相同的格式,这是因为它们
计算机科学导论 第一章_绪 论
Wilkes 制造产生.
28
国内第一台模拟电子计算机 1956年,东北大学教授李华天带领工作人员开发 研制出国内第一台模拟电子计算机。 全套设备占地面积 40 平方米,拥有 5 个 2.3 米高的
尽管可以有不同类型的存储器、不同类型的输入 / 输出 子系统等。在第5章我们将详细讨论计算机模型.
20
数据 Data
冯诺依曼模型将一台计算机定义为一台数据处理机。 它接收输入数据,处理并输出相应的结果。 存储数据:冯诺伊曼模型并没有清楚定义数据应如何 存储在计算机中。如果一台计算机是电子设备,最好的
Figure 1.5 冯.诺依曼模型
15
四个子系统 Four subsystems 存储器:用来存储的区域。在计算机的存储过程 中,用来存储程序和数据。 算术逻辑单元 : 进行计算和逻辑运算。 控制单元: 对存储器、ALU、I/O等子系统进行控 制操作。 输入输出单元 : 输入子系统负责从计算机外部接 收输入数据和程序。输出子系统负责将计算机的 处理结果输出到计算机外部。
16
存储的程序概念 The stored program concept
冯诺依曼模型要求程序必须存储在内存中.
与早期只有数据才存储在存储器中的计算机结构完全不同 :
完成某一任务的程序是通过操作一系列的开关或改变其配 线来实现的. 现代计算机的存储单元主要用来存储程序及其响应数据。 这意味着数据和程序应该具有相同的格式,这是因为它们
计算机科学导论 第一章_绪 论
计算机引论课件第1章 计算机概述

2020年7月2日星期四
计算机引论
18
1.5 本章小结
本章按采用的电子器件对计算机进行了年代划分,电 子管、晶体管、集成电路和大规模集成电路,根据不 同的分类标准对计算机进行了分类,按照规模和性能 分为巨型机、大中型计算机、小型计算机、微型机和 单板机。此外还介绍了计算机的特点,运算速度快、 计算精度高、存储容量大、复杂的逻辑判断和按程序 自动运行。计算机应用领域有科学计算、数据处理、 计算机辅助技术、过程控制、人工智能和网络应用等 。学习本章内容之后,应对计算机有一个整体的了解 ,为以后对计算机相关知识的学习建立基础。
1642年,法国著名的数学家和哲学家帕斯卡 (BlaséPascal)利用齿轮发明了一个用来进行加 减运算的计算机器。
2020年7月2日星期四
计算机引论
5
1.2 计算机的产生与发展
机电式计算机 机电式计算机使用电力做动力,但进行计算
的机构还是机械的。
IBM公司在哈佛大学发起创建了一项工程,在艾 肯(Howard Aiken)的直接领导下建造了一台能 够自动进行序列控制演算的计算机(Mark I), 由此,奠定了IBM公司在计算机产业中的地位。
计算机引论
7
1.2 计算机的产生与发展
1936年,图灵向伦敦权威的数学杂志投了一篇论 文,题为《论可计算数及其在判定问题中的应 用》。图灵给“可计算性”下了一个严格的数学 定义,并提出著名的有限状态自动机也就是图灵 机的概念。
2020年7月2日星期四
计算机引论
8
1.2 计算机的产生与发展
冯·诺依曼是美藉匈牙利数学家,提出的存储程序 和程序控制原理,按该原理构造的计算机又称 冯·诺依曼计算机,其体系结构称为冯·诺依曼结 构。该原理的思想是:
计算机科学引论

具有很强的描述计算机特性的语法
4
C/C++语言
一门语言?两门语言?
现实项目中使用的既不是C,也不是C++
是结合了C和C++各自的一些特点的语言
意味着:删除了C和C++各自的一些特点 为什么删除? 某些特性不助于解决某些现实问题,而会让事情 变得复杂化 合理选择实现方案非常重要!
class TView { TDoc *myView; …. 29
C/C++的算法描述功能
结构的声明与定义
结构的声明
很少使用:很少有必须使用的情况 必须使用的情况:两个类相互引用
只有在较大的程序,设计较复杂的功能划分和继承关 系时才会出现
class TDoc { TView *myView; ……
计算机科学引论
C/C++语言介绍
1
程序语言
程序语言设计原则
尽可能接近人的思维习惯
为何不用自然语言? 目前的计算机软硬件平台还不能很好地理解自 然语言
程序语言是机器思维与人类思维之间的折衷
机器思维
机器语言 汇编语言 程序语言
人类思维
自然语言
2
程序语言
程序语言的目的
让程序员可以把解决问题的算法表示成计算 机可以理解的形式
大多数解释执行的语言可以这样使用变量 如果变量类型不确定,程序的执行效率会很差 一般编译执行语言要求事先指定所使用的变量类型 变量定义:先定义再使用
不同类型的变量,CPU要用不同指令来操作
《计算机科学导论课件》

编程与算法
学习编程语言和算法设计,提升解决复杂问题的能 力。
人机交互与用户体验
研究如何设计用户友好的界面和交互体验,提升人 机互动效果。
计算机科学的历史
年代 1936 1971 1990 2004
里程碑 图灵机提出,标志着计算机科学的开始。 发明第一台微处理器,开启了个人计算机时代。 万维网诞生,互联网得以普及。 诞生了Facebook,社交媒体的兴起。
计算机科学的基础知识
1 二进制
计算机使用的数字系统,了解其原理对理解计算机工作方式至关重要。
2 逻辑电路
了解计算机内部的电路以及逻辑门的工作原理。
3 操作系统
学习操作系统的功能和作用,了解计算机的基本操作。
4 编程语言
掌握编程语言的基本概念和语法,能够编写简单的程序。
计算机硬件和软件架构
计算机硬件
掌握常见的排序和搜索算法,提高程序的效 率。
计算机网络和通信技术
计算机网络
学习网络基础知识,如TCP/IP协 议、局域网、广域网等。
网络安全
了解网络安全的重要性和常见的 网络攻击方式,学习保护网络的 方法。
通信技术
掌握无线通信和移动通信的原理 和技术,了解通信协议和网络传 输。
人工智能和机器学习
包括中央处理器、内存、硬盘等各 种硬件组件。
软件架构
设计软件的结构和组织方式,实现 程序的功能和目标。
电路板
控制计算机硬件的电路,使其能够 正常工作。
数据结构和算法
1
数据结构
学习数据的存储方式和组织结构,如数组、
算法复杂性
2
链表和树等。
分析算法的时间和空间复杂性,选择合适的
算法解决问题。
计算机科学导论.ppt

可见,软件程序和硬件逻辑都是建立在数 学模型基础上的
16
计算机科学的数学理论体系
数值计算:
主要包括数值分析、数学分析、线性代数、计算几 何、概率论与数理统计
离散数学:
一般认为包含集合论、逻辑学、代数学、图论、组 合学
数论:
包括初等数论、解析数论、代数数论、几何数论
计算理论:
主要包括算法学、计算复杂性理论、程序理论
计算机学科需要支撑其它学科的发展:
科学计算、工程计算等工业软件的开发需要物理学知识
物联网、信息物理系统(CSP)需要物理学知识 量子计算需要物理学知识
总之,现代社会要求通才型、交叉型、综合型人才
22
三大科学思维
推动人类文明进步和科技发展的三大科学:
理论科学,实验科学,计算科学
与三大科学相对应的是三大科学思维:
应试教育强调的正是人工智能擅长的,相比之 下人类学生不具有优势
人工智能不擅长的,人类学生也不擅长
如果不改革教育方式,现在的学生在毕业 之时可能面临着被人工智能淘汰的尴尬处 境
31
正确的学习方式
重视写作与表达的训练:
重视实验报告、课程论文等的写作,多读科技论文,学会条 理清楚、逻辑正确地表述一个工作或自己的观点,能流利地 进行口头表达
28
现行教育方式与人工智能学习特点 高度重合
数学教学:
应试教育:中小学强调计算、题型和公式套用, 缺少逻辑推理训练;高校数学知识碎片化,仍 是简单套公式应付考试,会解题但往往不会活 用数学工具,如根据实际问题建立数学模型
人工智能:擅长计算,已有Matlab等非常强大 的数学和统计软件工具,计算能力远超人类
数学教育看起来只是一种知识教育,但本质上是一种 素质教育
16
计算机科学的数学理论体系
数值计算:
主要包括数值分析、数学分析、线性代数、计算几 何、概率论与数理统计
离散数学:
一般认为包含集合论、逻辑学、代数学、图论、组 合学
数论:
包括初等数论、解析数论、代数数论、几何数论
计算理论:
主要包括算法学、计算复杂性理论、程序理论
计算机学科需要支撑其它学科的发展:
科学计算、工程计算等工业软件的开发需要物理学知识
物联网、信息物理系统(CSP)需要物理学知识 量子计算需要物理学知识
总之,现代社会要求通才型、交叉型、综合型人才
22
三大科学思维
推动人类文明进步和科技发展的三大科学:
理论科学,实验科学,计算科学
与三大科学相对应的是三大科学思维:
应试教育强调的正是人工智能擅长的,相比之 下人类学生不具有优势
人工智能不擅长的,人类学生也不擅长
如果不改革教育方式,现在的学生在毕业 之时可能面临着被人工智能淘汰的尴尬处 境
31
正确的学习方式
重视写作与表达的训练:
重视实验报告、课程论文等的写作,多读科技论文,学会条 理清楚、逻辑正确地表述一个工作或自己的观点,能流利地 进行口头表达
28
现行教育方式与人工智能学习特点 高度重合
数学教学:
应试教育:中小学强调计算、题型和公式套用, 缺少逻辑推理训练;高校数学知识碎片化,仍 是简单套公式应付考试,会解题但往往不会活 用数学工具,如根据实际问题建立数学模型
人工智能:擅长计算,已有Matlab等非常强大 的数学和统计软件工具,计算能力远超人类
数学教育看起来只是一种知识教育,但本质上是一种 素质教育
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用数表示指令
指令的构成
操作 操作数
“操作”需要的参数
编码指令的要求
编码操作 编码操作数
2011年4月16日
Machine Structure
12
用数表示各种信息
用数表示指令
编码操作
把所需要表示的操作按序排列,再逐一编号 0 1 2 3 4 ……
2011年4月16日
add sub mul div call
进位制
2011年4月16日 Machine Structure 17
数和进位制
“大”数的表示
前面另加一个基本符号 前面另加很多基本符号 基本符号表示不了 10 6000000000
“位”:每个基本符号占据的位置 进位:一“位”表示不下时,在前面加一位 进位制:何时在前面加一位
“进位”的“制度” 简称“进制”
取反
111112 - 00002
-010
看上去很美
+0: 000002 111112
39
+0≠-0?-0:
2011年4月16日
Machine Structure
负数的表示
究竟该如何表示负数?
越简单越好
如何才能简单?
实际的使用借位的减法运算:
3 - 4 => …0011 - …0100 = …1111
十六进制和二进制的相互转换
1010 0010 0011 0110
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0 1 2 3 4 5 6 7 8 9 A B C D E F
A
2
3
6
需要人处理的情况多用十六 进制
0 ... 9 ... 11 ... 33 ... 78 ... 99
两个A~Z的排列可以表示A~ZZ共676个数
A ... Z ... BB ... EA ... MP ... ZZ
用更多个的符号,可以表示更多的数
基本符号集:少数几个表示数的基本符号 当一个数大到不能用基本符号集表示时就用多个基 本符号的排列表示
计算机科学引论
数的表示和存储
主要内容
用数表示各种信息 数和进位制 数的存储
2011年4月16日
Machine Structure
2
用数表示各种信息
计算机是实现数到数的变换的工具
大量不同的事物均可用数表示
整数、浮点数、字符…… 指令、程序…… 语音、图像、视频……
操作抽象的数字比操作具体的物体容易
Machine Structure
输入 输出 0 1 1 0
30
二进制数的特殊性质
二进制数用于逻辑运算
二值逻辑的重要性
数学上,基于二值逻辑的数理逻辑体系可以与实 数域的数学体系等价
微积分课程中会学到
二值逻辑功能可以用电子元件方便地实现 整数运算可以化解成二值逻辑
现代数字电路的理论基础 现代数字电子计算机的基础
二值逻辑在编码、加密等领域有重要应用
2011年4月16日 Machine Structure 31
二进制数的特殊性质
基于二值逻辑的二进制数存储单元
最简单的触发器
数字电路之于模拟电 路的一个重要优点是 可以方便地实现数据 的精确无限时存储!
2011年4月16日
Machine Structure
32
二进制数的加法
0+0=0 0+1=1 1+0=1 1+1=?
1 + 1 10 进位
2011年4月16日
Machine Structure
33
二进制数的加法
多位二进制数的加法
10+7=17 + 1 1 1 0 0 1 0 1 1 0 0 1
------------------------1 0 0 0 1
全加器:把三个二进制数相加, 输出两个二进制数(和与进位)
计算机都用二进制
计算机使用二进制并不意味着程序也必须使 用二进制
编译连接程序:用二进制、十进制、十六进制等 工资报表程序:通常用十进制 科学计算程序:可能用任意进制
2011年4月16日
Machine Structure
24
二进制
表示数的符号
0,1
进位制
逢二进一
表示
书写:11012 汇编:1101b
2011年4月16日
Machine Structure
25
二进制
二进制数的值
d31d30 ... d2d1d0 value=d31x 231 + ... + d1 x 21 + d0 x 20 例:1011 = 1x23 + 0x22 + 1x21 + 1x20 = 8 + 0 + 2 + 1 = 11
多快好省
可以利用众多的数学算法进行数到数的变换
如何用数表示人类所关心的信息?
2011年4月16日 Machine Structure 3
用数表示各种信息
用数表示字符
把所要表示的字符按某种顺序排列
A 1 天 1
B 2 地 2
C 3 玄 3
D 4 黄 4
E 5 宇 5
F …… 6 …… 宙 …… 6 ……
2011年4月16日 Machine Structure 34
二进制数的加法
一位全加器
Ai Bi Si Ci Ci
异或
输入 输出 0 0 0 0 1 1 1 0 1 1 1 0
2011年4月16日 Machine Structure 35
二进制数的加法
多位全加器
Carry Sum
A, B
C0
2011年4月16日
例:汉语
短时记忆很小:仅可记忆几个到十几个字 处理差异很小的符号时容易出错
二进制不适合人们阅读和记忆
0001 1001 0111 1000 0000 0010 0010 0110
很长但类似的符号,不符合人们的习惯
转换成十进制?
麻烦
更简单的表示:十六进制
0x19780226
2011年4月16日 Machine Structure 28
0个符号?
没有这样的进位制
一个符号:一进制?
计算机不仅要表示数,还要运算:运算意味 着变化,只有一个符号无法表示变化 一进制在数学上不能与十进制等价
如何表示0?
2011年4月16日
Machine Structure
23
计算机使用的进位制
二个符号:二进制
既可以表示数,也可以表示变化 数学上可以与十进制等价
按所排列的顺序编号
2011年4月16日 Machine Structure 4
用数表示各种信息
用数表示字符 A 1 天 1 B 2 地 2 C 3 玄 3 D 4 黄 4 E 5 宇 5 F …… 6 …… 宙 …… 6 ……
codepage 代码页?? 例:课本附录A,527页
2011年4月16日 Machine Structure 5
Machine Structure
13
用数表示各种信息
用数表示指令
编码操作数
操作数情况比较复杂
常量/变量,正数/负数,整数/小数…… 编码方案比较复杂
一个极端简化的例子
仅编码变量 总共10个存储单元 每个指令3个操作数 z=x+y
2011年4月16日
Machine Structure
14
用数表示各种信息
既然运算结果如此,我们就用这个结果表示 负数
-N = 0-N(用二进制借位运算) 基二的补码:简称补码
2011年4月16日
Machine Structure
40
负数的表示
00000 00001 11111 11110 00010 -1 0 1 11101 2 -2 -3 11100 -4 . . . . . . -15 -16 15
用数表示指令
编码操作数
编码单个操作数
把存储单元按顺序排列 顺序编号0-9
+
0 1 2 … 9
63 33 26 52 … 11 029
编码一个指令的三个操作数
用三位数字编码
编码整个指令
z=x+y
0029
2011年4月16日
Machine Structure
15
数和进位制
“数”不过是一个抽象的概念,每个数用 一个特定的符号或状态代表
2011年4月16日
Machine Structure
18
数和进位制
“大”数的值
……d3 d2 d1 d0 ……5 3 7 8 阶 有效数字
…… + 5x103+ 3x102+7x101+8x100
进制
2011年4月16日 Machine Structure 19
数和进位制
一般的进位制
当数的大小刚好等于基本符号个数时“进位”
是等于不是大于:要表示0
最常用的进位制:十进制
十个基本符号 逢十进一
2011年4月16日
Machine Structure
20
数和进位制
常用的“非十”进制
六十进制
1小时=60分=3600秒 1甲子=60年 1亩=60平方丈
十二进制
1年=12月 1天=12时辰 1打=12个 1英尺=12英寸
2011年4月16日 Machine Structure 21
二进制转换成十进制的方法
2011年4月16日
Machine Structure
指令的构成
操作 操作数
“操作”需要的参数
编码指令的要求
编码操作 编码操作数
2011年4月16日
Machine Structure
12
用数表示各种信息
用数表示指令
编码操作
把所需要表示的操作按序排列,再逐一编号 0 1 2 3 4 ……
2011年4月16日
add sub mul div call
进位制
2011年4月16日 Machine Structure 17
数和进位制
“大”数的表示
前面另加一个基本符号 前面另加很多基本符号 基本符号表示不了 10 6000000000
“位”:每个基本符号占据的位置 进位:一“位”表示不下时,在前面加一位 进位制:何时在前面加一位
“进位”的“制度” 简称“进制”
取反
111112 - 00002
-010
看上去很美
+0: 000002 111112
39
+0≠-0?-0:
2011年4月16日
Machine Structure
负数的表示
究竟该如何表示负数?
越简单越好
如何才能简单?
实际的使用借位的减法运算:
3 - 4 => …0011 - …0100 = …1111
十六进制和二进制的相互转换
1010 0010 0011 0110
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0 1 2 3 4 5 6 7 8 9 A B C D E F
A
2
3
6
需要人处理的情况多用十六 进制
0 ... 9 ... 11 ... 33 ... 78 ... 99
两个A~Z的排列可以表示A~ZZ共676个数
A ... Z ... BB ... EA ... MP ... ZZ
用更多个的符号,可以表示更多的数
基本符号集:少数几个表示数的基本符号 当一个数大到不能用基本符号集表示时就用多个基 本符号的排列表示
计算机科学引论
数的表示和存储
主要内容
用数表示各种信息 数和进位制 数的存储
2011年4月16日
Machine Structure
2
用数表示各种信息
计算机是实现数到数的变换的工具
大量不同的事物均可用数表示
整数、浮点数、字符…… 指令、程序…… 语音、图像、视频……
操作抽象的数字比操作具体的物体容易
Machine Structure
输入 输出 0 1 1 0
30
二进制数的特殊性质
二进制数用于逻辑运算
二值逻辑的重要性
数学上,基于二值逻辑的数理逻辑体系可以与实 数域的数学体系等价
微积分课程中会学到
二值逻辑功能可以用电子元件方便地实现 整数运算可以化解成二值逻辑
现代数字电路的理论基础 现代数字电子计算机的基础
二值逻辑在编码、加密等领域有重要应用
2011年4月16日 Machine Structure 31
二进制数的特殊性质
基于二值逻辑的二进制数存储单元
最简单的触发器
数字电路之于模拟电 路的一个重要优点是 可以方便地实现数据 的精确无限时存储!
2011年4月16日
Machine Structure
32
二进制数的加法
0+0=0 0+1=1 1+0=1 1+1=?
1 + 1 10 进位
2011年4月16日
Machine Structure
33
二进制数的加法
多位二进制数的加法
10+7=17 + 1 1 1 0 0 1 0 1 1 0 0 1
------------------------1 0 0 0 1
全加器:把三个二进制数相加, 输出两个二进制数(和与进位)
计算机都用二进制
计算机使用二进制并不意味着程序也必须使 用二进制
编译连接程序:用二进制、十进制、十六进制等 工资报表程序:通常用十进制 科学计算程序:可能用任意进制
2011年4月16日
Machine Structure
24
二进制
表示数的符号
0,1
进位制
逢二进一
表示
书写:11012 汇编:1101b
2011年4月16日
Machine Structure
25
二进制
二进制数的值
d31d30 ... d2d1d0 value=d31x 231 + ... + d1 x 21 + d0 x 20 例:1011 = 1x23 + 0x22 + 1x21 + 1x20 = 8 + 0 + 2 + 1 = 11
多快好省
可以利用众多的数学算法进行数到数的变换
如何用数表示人类所关心的信息?
2011年4月16日 Machine Structure 3
用数表示各种信息
用数表示字符
把所要表示的字符按某种顺序排列
A 1 天 1
B 2 地 2
C 3 玄 3
D 4 黄 4
E 5 宇 5
F …… 6 …… 宙 …… 6 ……
2011年4月16日 Machine Structure 34
二进制数的加法
一位全加器
Ai Bi Si Ci Ci
异或
输入 输出 0 0 0 0 1 1 1 0 1 1 1 0
2011年4月16日 Machine Structure 35
二进制数的加法
多位全加器
Carry Sum
A, B
C0
2011年4月16日
例:汉语
短时记忆很小:仅可记忆几个到十几个字 处理差异很小的符号时容易出错
二进制不适合人们阅读和记忆
0001 1001 0111 1000 0000 0010 0010 0110
很长但类似的符号,不符合人们的习惯
转换成十进制?
麻烦
更简单的表示:十六进制
0x19780226
2011年4月16日 Machine Structure 28
0个符号?
没有这样的进位制
一个符号:一进制?
计算机不仅要表示数,还要运算:运算意味 着变化,只有一个符号无法表示变化 一进制在数学上不能与十进制等价
如何表示0?
2011年4月16日
Machine Structure
23
计算机使用的进位制
二个符号:二进制
既可以表示数,也可以表示变化 数学上可以与十进制等价
按所排列的顺序编号
2011年4月16日 Machine Structure 4
用数表示各种信息
用数表示字符 A 1 天 1 B 2 地 2 C 3 玄 3 D 4 黄 4 E 5 宇 5 F …… 6 …… 宙 …… 6 ……
codepage 代码页?? 例:课本附录A,527页
2011年4月16日 Machine Structure 5
Machine Structure
13
用数表示各种信息
用数表示指令
编码操作数
操作数情况比较复杂
常量/变量,正数/负数,整数/小数…… 编码方案比较复杂
一个极端简化的例子
仅编码变量 总共10个存储单元 每个指令3个操作数 z=x+y
2011年4月16日
Machine Structure
14
用数表示各种信息
既然运算结果如此,我们就用这个结果表示 负数
-N = 0-N(用二进制借位运算) 基二的补码:简称补码
2011年4月16日
Machine Structure
40
负数的表示
00000 00001 11111 11110 00010 -1 0 1 11101 2 -2 -3 11100 -4 . . . . . . -15 -16 15
用数表示指令
编码操作数
编码单个操作数
把存储单元按顺序排列 顺序编号0-9
+
0 1 2 … 9
63 33 26 52 … 11 029
编码一个指令的三个操作数
用三位数字编码
编码整个指令
z=x+y
0029
2011年4月16日
Machine Structure
15
数和进位制
“数”不过是一个抽象的概念,每个数用 一个特定的符号或状态代表
2011年4月16日
Machine Structure
18
数和进位制
“大”数的值
……d3 d2 d1 d0 ……5 3 7 8 阶 有效数字
…… + 5x103+ 3x102+7x101+8x100
进制
2011年4月16日 Machine Structure 19
数和进位制
一般的进位制
当数的大小刚好等于基本符号个数时“进位”
是等于不是大于:要表示0
最常用的进位制:十进制
十个基本符号 逢十进一
2011年4月16日
Machine Structure
20
数和进位制
常用的“非十”进制
六十进制
1小时=60分=3600秒 1甲子=60年 1亩=60平方丈
十二进制
1年=12月 1天=12时辰 1打=12个 1英尺=12英寸
2011年4月16日 Machine Structure 21
二进制转换成十进制的方法
2011年4月16日
Machine Structure