教学进度 计算机科学与工程系 大学计算机基础 (省精品课程) 计算机信息基础 (第二章) 华南农业大学 信息学院
教学进度 计算机科学与工程系 第二章 计算机信息基础 我们说计算机是用二进制来表示信息的,那么 到底什么叫二进制数呢?和我们常用的数的形 式之间有什么关系呢?如果我们写一个文档, 其中的数字、字符、汉字与一连串的0和1有什 么关系呢?在计算机系统中,各种数据在存储、 加工和传输时又是如何以电子元件的不同状态 来表示呢? 引言
教学进度 计算机科学与工程系 第二章 计算机信息基础 熟悉计算机中的数据的运算及表达方式。 对计算机计算有初步的了解和整体的认识。 知识 点 数制转换二进制 实数表示整数编码 ASCII 编码 汉字编码 教学目的 理解计算机中信息输入、编码、存储、转换过程。
教学进度 计算机科学与工程系 2.1 计算机所使用的数制 数制的概念 基数: R 进制的基数 =R 位权:是一个与数字位置有关的常数,位权 =R n 其中 n 取值:以小数点为界,向左 0 , 1 , 2 , 3…… , 向右 -1 , -2 , -3…… 常用数制十进制二进制八进制十六进制 数字符号 0~90~90,10,10~70~70 ~ 9,A,B,C,D,E,F 基 数基 数 进制是一种计数方法,一般用于刻画事物间的数量关系,是人们在长 期实践中发现和发明的。例如,传说十进制是人类通过十个手指头进行计 数而发明的。因为我们的祖先也用过十六进制,所以才有了今天半斤八两 的说法。
教学进度 计算机科学与工程系 2.1 计算机所使用的数制 计算机为什么要采用二进制? 我们知道,在电气元件中很容易实现两种稳定状态, 如电压高低、晶体管导通与截止、电灯亮与灭。 如果用一盏灯表示 0 ~ 9 这十个数就很困难了。也许有 人会说,用灭来表示 0 ,亮一点表示 1….. 最亮为 9 ,那么请 问怎样才能区分亮一点或更亮一点? 由于技术上的原因, 计算机不得不最终选择二进制。 亮 灭 1 0 例如:有两只灯泡,分别表示亮与灭。 ( 十进制 ) ( 二进制 )
教学进度 计算机科学与工程系 2.1 计算机所使用的数制 计算机选择二进制可以从以下方面说明: (1) 电路简单: 0 、 1 两种状态在技术上轻而易举。 (2) 可靠性高:只有两种状态,传输各处理时不易出错。 (3) 运算简单:二进制数运算比较简单。如二进制乘法运 算只有 3 种: 1×0=0 ; 0×1=0 ; 1×1=1, 若采用十进制,则有 55 种 ( 九九乘法口诀 ) 。 (4) 逻辑性强:只有 0 和 1 ,可表示逻辑上的 “ 真 ” 、 “ 假 ” 。 (5) 数据存储:通过磁盘的磁极的取向 ( 南极、北极 ) 、光 盘表面的凹凸、光照有无反射等,二进制形式很容易在物理 上实现数据的存储。
教学进度 计算机科学与工程系 2.1 计算机所使用的数制 对于用户,通常还是用十进制与计算机交往,然后由计 算机自动实现十进制与二进制转换。然而,在二进制位数和 十进制数字之间没有显然的关系。为了克服这个问题,发明 了两种位置化系统:十六进制和八进制。 八进制和十六进制与二进制恰巧有倍数关系,即 1 位八 进制数等于 3 位二进制数, 1 位十六进制数等于 4 位二进制数。 由于八进制或十六进制与二进制之间的转换很直观和简单, 在认知上接近二进制,这些原因促进人们引入八进制和十六 进制。但在计算机内部,数据全部都是以二进制的形式存储 和加工的。 采用二进制后,进入计算机中的各种数据的编码都要进 行二进制转换,同样从计算机输出的数据需要进行逆转换。
教学进度 计算机科学与工程系 2.1 计算机所使用的数制 十进制二进制八进制十六进制 A B C D E F
教学进度 计算机科学与工程系 2.1 计算机所使用的数制 二进制的运算 二进制的算术运算 加: 0+0=0 0+1=1 1+0=1 1+1=10 减: 0-0=0 0-1=1 1-0=1 1-1=0 乘: 0×0=0 0×1=0 1×0=0 1×1=1 除: 0÷0=0 0÷1=0 1÷0 ( 无意义 ) 1÷1=1 本位为 0 , 向高位进位 1 本位为 1 , 向高位借 1 当 2
教学进度 计算机科学与工程系 二进制的逻辑运算 与 AND : 0 ∧ 0=0 0 ∧ 1=0 1 ∧ 0=0 1 ∧ 1=1 或 OR : 0 ∨ 0=0 0 ∨ 1=1 1 ∨ 0=1 1 ∨ 1=1 非 ( 取反 ) : 0=1 1=0 0 表示 “ 假、否 ” , 1 表示 “ 真、是 ” 2.1 计算机所使用的数制
教学进度 计算机科学与工程系 十进制数 二、八、十六进制的转换 由一种数制转换成另一种数制 2.1 计算机所使用的数制 ①② ③ 二进制和其它进制的转换
教学进度 计算机科学与工程系 十进制 二进制、八进制、十六进制 十进制转二进制:整数部分除以 2 取余,直至商为 0 ;小 数部分乘以 2 取整,直至小数部分为 0 或达到所需精度为止。 十进制转八进制:方法同上。整数部分除以 8 ,小数部 分乘以 8 。 十进制转十六进制:方法同上。整数部分除以 16 ,小数 部分乘以 16 。 2.1 计算机所使用的数制
教学进度 计算机科学与工程系 十进制整数 二进制整数 结果为: 十进制小数 二进制小数 × 2 1 ……… × 2 0 ……… × 2 1 ……… × 2 1 ……… 结果为: ( ) 10 =( ) 计算机所使用的数制
教学进度 计算机科学与工程系 十进制整数 八进制整数 结果为: 113 十进制整数 十六进制整数 结果为: 4B B 计算机所使用的数制
教学进度 计算机科学与工程系 例: (1011.1) 2 = 二进制、八进制、十六进制 十进制 位权相加法:各位数码乘位权,再相加。 2.1 计算机所使用的数制 1× × × × ×2 -1 = = (11.5) 10 例: (AB.1) 16 =10× × ×16 -1 = /16 = ( ) 10
教学进度 计算机科学与工程系 整数部分从右向左,小数部分从左向右, 每 3 位二进制一组,变为 1 位八进制。 不足 3 位时分别在最左端和最右端补 0 凑够 3 位。 二进制数 八进制数 2.1 计算机所使用的数制 例: ( ) 2 =( ) 8 每 1 位八进制,变为 3 位二进制。 例: ( ) 8 = 八进制数 二进制数 ( ) 2 ( ) 2
教学进度 计算机科学与工程系 二进制 十六进制 整数部分从右向左,小数部分从左向右, 每 4 位二进制一组,变为 1 位十六进制。 不足 4 位时分别在最左端和最右端补 0 凑够 4 位。 十六进制 二进制 每 1 位十六进制,变为 4 位二进制。 例: (4C2.F6) 16 = 2.1 计算机所使用的数制 例: ( ) 2 =(6BD.A2) 16 ( ) 2 ( ) 2
教学进度 计算机科学与工程系 计算机看起来神奇、智慧,但其本质上还是一种工具。 作为一种前所未有的特殊的电子装置,要在物理上实现二进 制的运算,首先要解决的问题是如何物理地表示或存储二进 制的两个数值符号 0 和 1 ,然后才是实现物理上的二进制运算。 2.1 计算机所使用的数制 二进制运算的物理实现 要理解二进制运算在物理上是怎样实现的,让我们从最 基本的电信号开始。例如,用开关可以实现两种状态:当开 关断开时电流被切断代表 0 ;当开关接通时,电路中有电流通 过,代表 1 。 表示 0 表示 1 使用开关来表示二进制数
教学进度 计算机科学与工程系 在大多数情况下,一个二进 制数由一连串的 0 和 1 组成,需要很 多开关来表示这个二进制数。可以 先从最简单的加法运算开始,了解 其运算过程。 2.1 计算机所使用的数制 计算结果输出 二进制加法运算示例 图中,中间的方框表示运算部件,运算部件的左边和 下边各有一个开关,分别用于输入两个参与运算的二进制 数。运算部件右边就是输出结果,可以把小灯泡接在一根 输出线上,这样通过灯泡的亮和不亮来代表输出的结果是 0 还是 1 。当然,这种简单的加法器没有考虑到进位,只是用 电路实现了二进制的加法,称为半加器。通过简单的半加 器,进而可以实现带二进制加法进位的全加器,把多个全 加器连接起来就可以进行多位二进制数的加法运算了。
教学进度 计算机科学与工程系 加法器的内部是什么呢?怎样实现开关的自动化呢? 2.1 计算机所使用的数制 我们知道,当一根电线有电流通过时,就会在其周围 产生微弱的磁场,那么就可以通过电流的有无来控制磁性 的有无,继而来控制机械部分。继电器就是采用了这个原 理,它通过电磁转换为机械的吸合、释放达到开关的作用, 从而实现电路的自动导通、切断。 二进制逻辑运算是计算机实现计算的基础。布尔代数 是实现逻辑运算的数学工具,然而计算机如何与逻辑关系 结合起来呢?数学家香农把布尔代数的 “ 真 ” 与 “ 假 ” 和 电路系统的 “ 开 ” 与 “ 关 ” 对应起来,用 1 和 0 表示,并证 明了可以通过继电器电路来实现布尔代数的逻辑运算。香 农还提出了实现加、减、乘、除等运算的电子电路的设计 方法。这些均奠定了数字电路的理论基础。
教学进度 计算机科学与工程系 用继电器制造的电路,可以实现逻辑运算。同样可以以 晶体管为基础来描述数字电路,从而构成计算的基础,并实 现更加复杂的逻辑运算。大量晶体管的使用促进了集成电路 的发展,所有元件在结构上组成一个整体,使电子元件向着 微小型化、低功耗和高可靠性方面迈进了一大步。随着制作 工艺的不断改进,又产生了大规模集成电路和超大规模集成 电路,使计算机硬件越来越小、功能越来越强。 2.1 计算机所使用的数制
教学进度 计算机科学与工程系 2.2 计算机中的数据单位 位 (bit) :计算机存储数据的最小单元 (0 、 1) 字节 (Byte) :处理数据的基本单位 (8bit/Byte) …… 位( bit ) 字长 字节( Byte ) 字长: CPU 一次处理数据的二进制位数。 常用的字节计数单位: 1KB = 1024 Byte (2 10 B) 1MB = 1024 KB (2 20 B) 1GB = 1024 MB (2 30 B) 1TB = 1024 GB (2 40 B)
教学进度 计算机科学与工程系 2.3 数值在计算机中的表示 符号位:最高位用 0 表示 “ 正 ” , 1 表示 “ 负 ” 。 机器数:正负符号被数值化了的数。 真值:该机器数所表达的数值。 符号位 机器数 +5 真值 -5-5 -5- 整数的表示 在数学中,数值是用 “ + ” 和 “ - ” 表示正数和负数的, 而在计算机中只有 0 和 1 ,所以正负号也用 0 和 1 表示,即数值 符号数字化。
教学进度 计算机科学与工程系 2.3 数值在计算机中的表示 对有符号数的运算,需要通过原码、反码、补码的转换来完成。 原码:正号为0,负号为1,数值部分为二进制绝对值。 原码 反码 反码:正数的反码和原码相同;负数的反码是将其原码 除符号位外各位取反。 补码 补码:正数的补码和原码相同;负数的补码是将其反码 在末位加1。
教学进度 计算机科学与工程系 2.3 数值在计算机中的表示 补码的概念是怎么来的? 补码与 “ 模 ” 的概念有关。 “ 模 ” 是指一个系统所能表示的数据个数。按模运算是 指运算结果超过模时,模 ( 或模的整数倍 ) 将溢出而只剩下余 数。 例如 : 8 位二进制的模为 2 8 =256 假设 M 为模,若数 a , b 满足 a + b = M ,则称 a , b 互为补数。 在有模运算中,减去一个数等于加上这个数对模的补数。
教学进度 计算机科学与工程系 实数的表示 2.3 数值在计算机中的表示 在计算机中,实数的小数点是不占位置的,但又隐含 规定了小数点的位置。根据小数点的位置不同,实数的表 示采用了定点数和浮点数两种方式。 其中: 小数点位置固定的数称为定点数。 小数点位置不固定的数称为浮点数。
教学进度 计算机科学与工程系 定点数 定点数又分为定点整数和定点小数。 定点整数:定点整数是纯整数,其符号位右边所有的位 数表示的是一个整数。小数点隐含固定在数值部分最右端。 2.3 数值在计算机中的表示 定点整数: (-3) 隐含小数位 符号位
教学进度 计算机科学与工程系 2.3 数值在计算机中的表示 定点小数:定点小数是纯小数。小数点隐含固定在数值 部分最左端。 定点数表示法简单直观,但是用定点数表示数值受到字 长限制,因此表达的数值数据的范围和精度是有限的。为了 方便地表示更大范围的数据以及更高的精度,在现代的计算 机系统中,通常采用浮点数表示来解决这类问题。 定点小数: (+0.5) 符号位 隐含小数位
教学进度 计算机科学与工程系 浮点数 小数点位置不固定的数称为浮点数,它既有整数部分 又有小数部分,如 、 等。 在计算机中通常把浮点数分成阶码和尾数两部分来表 示,也就是平时所说的科学记数法。通常需要对尾数进行 规格化处理,即保证尾数的最高位为 1 ,实际数值通过阶 码进行调整。 例如,二进制实数 可以用 ×2 100 表示。 ( 注 :100 等同于十进制的 4) 2.3 数值在计算机中的表示 规格化的形式:尾数的绝对值大于等于 0.1 并且小于 1 ,从 而唯一地规定了小数点的位置。
教学进度 计算机科学与工程系 例:将十进制数 +55 以浮点数格式存放 ( 浮点数的字长 4 字节 ) 。 (55) 10 = (110111) 2 = * 尾数最高位为 … 阶码部分 尾数部分 阶码 符号位 尾数 符号位 110 ( 注 :110 等同于十进制的 6) 2.3 数值在计算机中的表示 尾数的位数决定数的精度 ; 阶码的位数决定数的范围。
教学进度 计算机科学与工程系 2.4 信息编码 所谓编码,就是利用数字串来标识所处理对象的不同 个体。计算机采用的是二进制,这就意味着所有需要计算 机处理的信息,如数值、字母、汉字、符号、声音、图像 等,都要用 0 和 1 组成的二进制编码形式来表示。在计算机 系统中通常采用统一的编码方式,因此制定了编码的国家 标准或国际标准。如 BCD 码、 ASCII 码、汉字编码、图形图 像编码等。计算机使用这些编码在计算机内部和外部设备 之间以及计算机之间进行信息交换。 编码和数是完全不同的!
教学进度 计算机科学与工程系 十进制数的编码 ——BCD 码 BCD 码 (8421 码 ) :二-十进制编码,用 4 位二进制码表示 1 位十进制数。 ( 不能参与运算 ) 例: (13579) 10 =( ) BCD ( ) BCD =( ) 信息编码 用 4 位二进制码表示一位十进制数,根据不同的选取方法, 可以编制出多种 BCD 码,如 8421 码、 5421 码、 2421 码、 5211 码和余 3 码,其中 8421 码最为常用。若非特别指定, BCD 码就 是 8421BCD 码。
教学进度 计算机科学与工程系 西文字符的编码 ——ASCII 码 128 个常用 字符,用 7 位二 进制编码,占 一个字节,最 高位 0 。 其中, 0 ~ 31 和 127 为控制 字符: 33 个; 普通字符: 95 个。 128 个常用 字符,用 7 位二 进制编码,占 一个字节,最 高位 0 。 其中, 0 ~ 31 和 127 为控制 字符: 33 个; 普通字符: 95 个。 2.4 信息编码 b6b5b4b3b2b1b0b6b5b4b3b2b1b SOHDC1!1AQaq 0010STXDC2“2BRbr 0011ETXDC3#3CScs 0100EOTDC4$4DTdt 0101ENQNAK%5EUeu 0110ACKSYN&6FVfv 0111BELETB‘7GWgw 1000BSCAN(8HXhx 1001HTEM)9IYiy 1010LFSUB*:JZjz 1011VTESC+;K[k{ 1100FFFS,<L\l| 1101CRGS - =M]m} 1110SORS.>N^n~ 1111SIUS/?O_oDEL (American Standard Code for Information Interchange)
教学进度 计算机科学与工程系 汉字编码 (1) 汉字输入码:通过键盘输入的汉字编码。 数字编码:如区位码; 拼音编码:如全拼、智能 ABC 、微软拼音等; 字形编码:如五笔字型等 。 2.4 信息编码
教学进度 计算机科学与工程系 (2) 区位码和国标码 1980 年颁布 (GB ) ,是中文信息处理的国家标准, 是使用简体中文的地区使用的中文编码。 2.4 信息编码 该编码共收录 682 个符号, 6763 个简体 汉字,其中一级汉字: 3755 个,以拼音排 序 ;二级汉字: 3008 个,以偏旁排序 。 所有汉字分 94 个区,每个区 94 个汉字。 由此构成区位码。而区位码的区码和位码 各加 32 就得到国标码。 国标码:每个汉字占两个字节的编码,且每个字节最高位 均为 0 。是由区位码演变过来的。 区位码无法用于汉字通信,因为它可能与通信使用的控制码即 ASCII 码中的 0~31 发生冲突。因此, GB2312 编码是通过对区位的简单变 换而得到的。
教学进度 计算机科学与工程系 部分区位码编号 : 2.4 信息编码 区号:01 【各类符号】 、。 · ˉ ˇ ¨ 〃 々 - ~ ‖ … ' ' " " 〔 〕 0120 〈 〉 《 》 「 」『 』 〖 〗 【 】 ± × ÷ ∶ ∧ ∨ ∑ ∏ 0140 ∪ ∩ ∈ ∷ √ ⊥ ∥ ∠ ⌒ ⊙ ∫ ∮ ≡ ≌ ≈ ∽ ∝ ≠ ≮ ≯ 0160 ≤ ≥ ∞ ∵ ∴ ♂ ♀ ° ′ ″ ℃ $ ¤ ¢ £ ‰ § № ☆ ★ 0180 ○ ● ◎ ◇ ◆ □ ■ △ ▲ ※ → ← ↑ ↓ 〓 区号:02 【各类数字】 ⅰ ⅱ ⅲ ⅳ ⅴ ⅵ ⅶ ⅷ ⅸ ⅹ ⒈ ⒉ ⒊ 0220 ⒋ ⒌ ⒍ ⒎ ⒏ ⒐ ⒑ ⒒ ⒓ ⒔ ⒕ ⒖ ⒗ ⒘ ⒙ ⒚ ⒛ ⑴ ⑵ ⑶ 0240 ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ ⑾ ⑿ ⒀ ⒁ ⒂ ⒃ ⒄ ⒅ ⒆ ⒇ ① ② ③ 0260 ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ㈠ ㈡ ㈢ ㈣ ㈤ ㈥ ㈦ ㈧ ㈨ ㈩ 0280 Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ Ⅺ Ⅻ 区号:03 【符号、字母】 ! " # ¥ % & '( ) * + , - . / 0 1 2 3 0320 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G 0340 H I J K L M N O P Q R S T U V W X Y Z [ 0360 \ ] ^ _ ` a b c d e f g h i j k l m n o 0380 p q r s t u v w x y z { | }  ̄ 区号:06 【罗马字母】 Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ 0620Υ Φ Χ Ψ Ω α β γ δ ε ζ η 0640θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω
教学进度 计算机科学与工程系 (3) 机内码 计算机内部存储和加工汉字所用的编码。不管用哪一种输 入法输入的汉字,在计算机内部都是先转换成国标码再由国标 码转换成机内码来表示的。每个汉字的机内码占两个字节,每 个字节最高位为 1 。 2.4 信息编码 汉字 :中 国标码: ( ) 2 (8680) 10 机内码: ( ) 2 区位码: 5448 注 : 十进制表示的国标码的每个字节减 32 即得区位码。
教学进度 计算机科学与工程系 点阵汉字:每一个汉字以点阵形 式存储,有点的地方为 “ 1 ” ,空白的 地方为 “ 0 ” 。有 16×16 、 24×24 、 48×48 点阵等。点阵越大,字形分辨 率越好,字形也越美观,但汉字存储 的字节数就多,字库也就越庞大。 2.4 信息编码 (4) 汉字字形码 汉字存储在计算机内采用机内码,但输出时必须转换成 字形码,再根据字形码输出汉字。字形码又称汉字字模,用 于在显示器或打印机上输出各种文字和符号。通常有两种:
教学进度 计算机科学与工程系 矢量汉字:将汉字的笔画轮廓用一组直线和 曲线来勾画,并记录存储每一直线和曲线的数 字描述(端点及控制点的坐标)。在需要输出时, 根据字形轮廓的描述计算出汉字点阵。矢量产 生的汉字即使放大仍能保持较好的质量。 2.4 信息编码 汉字字库:一般都存放在磁盘上,这种字库称为 “ 软 字库 ” ,使用时根据汉字内码到字库中找到相应的字形码, 然后调入内存并显示或打印。 矢量汉字轮廓描述
教学进度 计算机科学与工程系 计算机处理汉字的基本过程: 2.4 信息编码 (5) 其它编码 GBK 编码:是对 GB2312 的扩充。仍采用双字节编码, 在此基础上对罕见汉字使用四字节编码,共收录了 2.7 万个 汉字,与国标码兼容,同时收录了藏、蒙、维吾尔等主要少 数民族文字。 BIG5 码:台湾、香港等地区使用的繁体汉字编码标准。 自动 转换 字节最高 位置“1” 转换(调用 汉字字库)
教学进度 计算机科学与工程系 编码运算 字符编码参与运算吗?答案是肯定的。 字符编码的减法运算是最基本的。两个字符编码之差的 结果是它们在编码表中的距离,利用这个结果可以判断两个 编码是否代表同一个字符。即两个编码的差为 0 时,它们代 表同一个字符。两个字符编码之和在一般情况下没有意义, 但一个字符编码加上一个整数 n ,可得到编码表中该字符之 后第 n 个字符的编码。 更重要的运算是定义在字符串上的。字符串运算以函数 形式给出,利用函数可以统计一个文本中包含的字符数目; 可以将两个字符串拼接在一起,形成一个新字符串 …… 2.4 信息编码
教学进度 计算机科学与工程系 多媒体信息的数字化 数字化就是对模拟世界的一种量化,表示信息的最小单 位是位 (bit)——“0” 或 “1” 。多媒体信息在计算机中也要转 换为 0 和 1 。也就是说无论是文字、图像、声音或视频,经数 字化后都可分解为一系列 0 或 1 的排列组合。各种多媒体信息 在进入到计算机中时需要进行数字化处理,输出时再将其还 原成各自本身的特性呈现在我们面前。 2.4 信息编码
教学进度 计算机科学与工程系 2.4 信息编码 数值 西文 汉字 声像 十 — 二进制转换 ASCII 码 输入码 — 机内码 模数转换 数值 西文 汉字 声像 十 — 二进制转换 ASCII 码 输入码 — 机内码 模数转换 数值 西文 汉字 声像 二 — 十进制转换 西文形码 汉字字形码 数模转换 内存 各种多媒体信息的数字化处理过程示意图 计算机中的 0 和 1 串可以被解释成数字、字符、汉字、图像、音频以及 指令等多种情况,计算机系统根据具体情况进行相应解释。例如,存储器 某个单元的内容是 ,它表示的是字母 “a” 还是数字 97 呢?这个问 题的解决留给了程序设计。
教学进度 计算机科学与工程系 2.5 计算思维的典型案例 案例 1 : 现实世界可以用 0 和 1 来表示,而 0 和 1 可以进行逻辑与算术运算, 实现运算的过程可以通过电子技术来完成 ( 用继电器制造的电路,可以 实现简单的逻辑运算;以晶体管为基础制造的电路,可以实现复杂的 逻辑运算;而电子元件的集成化,则可以实现更为复杂的逻辑运算 ) 。 具体来说, 0 和 1 的思维蕴含着:信息表示。数值信息和非数值信 息均可用 0 和 1 表示,且均能够被计算,被符号化和数字化。物理世界 可抽象为符号,进而用 0 和 1( 进位制与编码 ) 表示,由 0 和 1 表示的数字 化信息可以实现算术运算与逻辑运算,所有的过程是通过计算机硬件 与软件的结合来实现的。即任何事物只要能表示成信息,就能够表示 成 0 和 1 ,也就能够被计算,也就能够被计算机所处理。 人的思想是无限的,要表示的内容也是无穷的,所以,利用 0 和 1 进行创造的可能性也是无限的。
教学进度 计算机科学与工程系 2.5 计算思维的典型案例 案例 2 : 递归是计算思维的方法之一。当我们通过键盘将字母 “A” 输入 到计算机,在计算机内部它将以二进制代码形式存储,但从显示器或 打印机输出的依然是字母 “A” ,由此体现了一种递归的方式。 究竟什么是递归呢?其实,递归就是一条蛇咬住自己的尾巴。递 归是指一样东西自己包含了自己。例如,有一个家庭,夫妇俩生养了 6 个孩子。一日,家里来一客人,见了这一群孩子,难免喜爱和好奇。 遂问老大: “ 你今年多大了? ” ,老大脑子一转,故意说: “ 我不告 诉你,但我比老二大 2 岁 ” 。客人遂问老二: “ 你今年多大了? ” , 老二也调皮地说: “ 我也不告诉你,我只知道比老三大 2 岁 ” 。 …… , 客人挨个问下去,孩子们的回答都一样,轮到最小的老六时,他诚实 地回答: “3 岁啦 ” 。客人马上就知道老五的年龄了,再往回就轻易 地推算出了老四、老三、老二和老大的年龄了 —— 这就是递归。递归 在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。 递归一词还较常用于描述用相似方法重复事物的过程。
教学进度 计算机科学与工程系 2.5 计算思维的典型案例 案例 3 : 当数据被储存在硬盘或传送到网络上时,它们一般是不会发生改 变的。不过,有时候一些故障也会导致数据值突然改变,比如电子干 扰。而避免这类事件的发生至关重要。利用类似奇偶校验的方法,可 以保护计算机中几乎所有的数据。数据硬盘、 CD 、 DVD 、闪存、网 络下载、电子邮件和网页都在数据中添加了你看不到的校验码。一旦 系统中个别比特发生错误,计算机就会在你不知情的情况下自动恢复 原始数据。这充分体现了计算思维是按照预防、保护、容错、纠错的 方式,并从最坏情况进行系统恢复的一种思维方法。 奇偶校验是一种校验代码传输正确性的方法。根据被传输的一组 二进制代码的数位中 “1” 的个数是奇数或偶数来进行校验。采用奇数 的称为奇校验,反之,称为偶校验。至于采用何种校验则是事先规定 好的。
教学进度 计算机科学与工程系 2.5 计算思维的典型案例 在本章中,介绍了 ASCII 码为 7 位编码,占 1 个字节,空出来的最 高位通常为 0 。但在需要传输数据时可以用作奇偶校验的校验位。例 如偶校验时,若 7 位 ASCII 码中 “1” 的个数为偶数,则校验位置为 “0” ;若 7 位 ASCII 码中 “1” 的个数为奇数,则校验位置为 “1” 。这 样就可以保证传送数据满足偶校验的要求。在接收方收到数据时,将 按照奇校验的要求检测数据中 “1” 的个数,如果是偶数,表示传送正 确,否则表示传送错误。奇偶校验位是最简单的错误检测码。
教学进度 计算机科学与工程系 学习完本章后,请思考并讨论以下提出的几个问题: 1 .假设有两支友军夜间在一条河的两岸并行行军。为了保持行动一 致,他们必须进行通信。双方预先确定了 53 条通信密语。两支军队都没 有带通信设备,但带了至少 8 支手电筒。请为他们设计一种通信方案。 2 .举例说明身边的某一编码,说说其编码方式、规则与取值范围, 写出自己的看法与认识。 3 .对下列 ASCII 码进行译码。 .对于下面一组不同编码的数,请按照从小到大的顺序排列。 (+01110) 原 (01101) 补 (10110) 反 (10000) 反 (10110) 原 (10010) 补