第一章 计算机基础知识
思考题 Nhomakorabea真值
原码
反码
补码 11001101
00011011
思考题答案
真值
-51
原码
10110011
反码
11001100
补码
11001101
+27
00011011
00011011 00011011
3、机器数的定点与浮点表示
计算机处理的数据多数带有小数,小数 点在机器中不占二进制位,那么计算机中如 何表示小数点的位置,反映数值的大小呢?
例2:设圆心角A0B=30°,由圆心角几何知识 可知, 30°与-330°圆心角落在同一位置上。 但若是在数轴上+ 30°与- 330°不会是同一点。 这是因为一个圆心角旋转360°后又重新开始计 数,所以才能有+ 30°=- 330° 数学上把这个12点、 360°称为“模”, “模”是指一个计量系统的测量范围。 时钟以12为模时,+5和-7才有相等的关系, 记作 +5=-7 (Mod 12) 称作+5是-7对于模12的补数。
注意:对于任何一种进制数,整数部分最低位 位置的序号是0,每高一位位置,序号加1,而 小数部分位置序号为负值,每低一位位置,序 号减一。(1101.11) 3、为什么要用二进制 (1)技术上易实现。因为电子的、磁性的、光 学的基本器件具有两种不同的稳定状态。便于 存放、传送等操作。 (2)运算规则简单,与其它数制转换方便。 (3)二进制可以使计算机方便地进行逻辑运算。 因为二进制代码与逻辑代数中逻辑量吻合。
4、为什么要用十六进制 简化书写,便于记忆。 5、数制的转换方法 (1)二进制数与十进制数之间的相互转换 一个二进制的数向十进制转化十分简单, 只要把它按位权展开相加即可。 例如: (1011)2=1×23+0×22+1×21+1×20=(11)10 十进制数转化为二进制数时,整数和纯小 数的转化方法不同,而一个既有整数部分又有 小数部分的数,则须分成整数和小数两部分分 别转化。
(1)符号数的原码、反码表示法 1)原码定义 设x由符号“+”或“-”和有效数码 X1X2--- Xn-1两部分组成,n位原码的定义如 下:
原码的性质是: a、原码实际上是数值化的符号位加上真值 的绝对值。 b、真值0在原码中有两种形式: [+0]原=000----0 [-0]原= 100----0
第一章 计算机基础知识
现代计算机是在微电子学高速发展与计算 数学日臻完善的基础上形成的,可以说现代计 算机是微电子学与计算数学相结合的产物。
微电子学的基本电路元件及其逐步向大规 模发展的集成电路是现代计算机的硬件基础, 而计算数学的数值计算方法与数据结构则是现 代计算机的软件基础。
1.1
数制
数制是人们利用符号来计数的科学方法。 无论使用哪种进位制,都包含两个基本要素: 1、基(Radix) 数制允许选用基本数字符号的个数称为基。 2、位权(Weight) 一个数字符号处在数的不同位置,它所代表的数 值不同的。位权的大小是以基数为底、数字符号所在 位置的序号为指数的整数次幂。
1) 浮点数的机器表示 为了在位数有限的前提下扩大数值的表 示范围,又保持数的有效精度,计算机采用 浮点表示法。其形式为: N=±M•Re 其中 M —尾数,是数值的有效数字部分, 一般用定点小数表示; R — 底数,计算机中通常取2或16; e — 指数,称阶码,是有符号整数。
在计算机中浮点数的表示形式由阶码和 尾数两部分组成,底数是事先约定的,在机 器数中不出现。浮点数在机器中的表示形式 如下:
例 如 : 将 十 进 制 数 47 转 化 为 二 进 制 形 式 。 即 (47)10=(101111)2
例如:
将十进制数0.625转化为二进制形式。 即:(0.625)10= (0.101)2
(2)八进制数与二进制数之间的相互转换
例如: 将八进制数327转成二进制形式。 3→011 2→010 7→111 即 (327)8= (011010111)2
c)机器数的位数受机器设备的限制。 机器内部设备能表示的二进制位数叫做机 器字长。一台机器的字长是固定的,所以机器 数所能表达的数值的精度亦受到限制,计算机 内常采用双倍或若干倍字长来满足要求。 (2)真值 因符号占据一位,机器数的形式值就不 等于真正的数值。为区别起见,带符号位的 机器数对应的数值称机器数的真值。
4位二进制可以表达十六种状态,BCD码 只需10种,所以有6种冗余,从16种状态选取 10个状态表示十进制0~9的方法很多,可以产 生多种BCD码,其中8421码是最常用的。
8421码是指这种编码的各位所代表的“权”,最高位 的权是8、依次是4、2、1。因此我们又称为有权码。 而编码规则不符合每位上有固定的权则称无权码, 余3码(将8421码加上0011就得到余3码)为无权码。 例:将二进制数1011.01转换成相应的BCD码。 首先,将二进制数转换成十进制数: 1011.01B=(1×23)+(0×22)+(1×21)+ (1×20)+(0×2-1)+(1×2-2) = 8+0+2+1+0+0.25 = 11.25D 然后,将十进制结果转换成BCD码 11.25D=(0001 0001.0010 0101)BCD
5、字符编码 1) 非数值数据 计算机中数据的概念是广义的,机内 除了有数值的信息之外,还有字母、通用 符号、控制符号的字符信息,另外还有逻 辑信息、图象和语言信息等。
这些信息进入计算机都转变0、1表示 的编码,所以称为非数值数据。
2)ASCII编码
字符信息在计算机里必须以一组能够识别的二 进制编码形式存在,这种字符信息以什么样的规则 进行二进制0、1组合,完全是人为规定的。
原码的优缺点: a、直观、真值转换方便、乘除运算比 较容易。 b、进行加减运算不方便。 2) 反码表示 规则:1)一个负数的原码符号位不动,其余 按位取反,就是机器数的反码表示。 2)一个正数的反码与原码形式相同。
(2)符号数的补码表示法 1) 补码的概念 计算机中补码的概念来源于数学上的 “模”和补数。在日常生活中也常遇到补码 的概念。 例1:手表的时针顺拨5点和倒拨7点亦 指在同一位置上,+5与-7等效的前提则是时 钟一圈表示12个钟头,超过12时,时钟重新 开始计时。
可以有各种各样的编码方式,已被国际上普遍 接受的是美国国家信息交换标准代码(American Standard Code for Information Interchange), 简称ASCII码。 ASCII码占7位二进制,选择了四类国际上用得 最多的字符共128种。因机内以8bit为一个长度单位, 存放一个ASCII码后还多余一位,有时被计算机用作 奇偶校验位。
c、直接求补法(负数) 其基本作法是:已知某数x的原码,则 保持其符号位不变,数值部分从低位向高 位逐位进行,在遇到第一个1以前,包括第 一个1,按原码照写;第一个1后,逐位变 反。
d、求解补码的原码 已知x的补码,要求原码的简单方法是 利用互补的道理对补码再次求补即得到x的 原码。 如[x1]原=01000011 (+67) [x2]原=11000011 (-67) 则[[x1]补]补=[01000011]补 =01000011=[x1]原 [[x2]补]补=[10111101]补=11000011=[x2]原 可见,无论是正数还是负数,其补码的补码 等于原码。
一般有两种方法,一种是约定所有机器 数的小数点隐含在某一个固定位置上,称为 定点表示法;另一种是小数点位置可以任意 浮动,称为浮点表示法。
(1)定点表示法(Fixed-Point) 定点表示法规定机器中所有数的小数点 位置固定不变,通常采用以下两种约定:
(2)浮点表示法(Floating-Point)
阶码反映了数N的小数点位置。当底数 取2时,二进制数N的小数点每右移一位,阶 码减1;反之,小数点每左移一位,阶码加1。 小数点就可以浮动而保持数N的值不变。
4、二——十进制数字编码
计算机中还有一种数值数据的表示方法: 每一位十进制数用4位二进制表示,称为二进 制编码的十进制数——BCD(Binary Coded Decimal)或称二——十进制编码。 它具有二进制形式,又有十进制数的特点。 许多计算机备有 BCD码运算指令,有专门的线 路在BCD码运算时使每4位二进制之间按十进制 位处理。
a、按定义来求解 [x]补= 2n -|x| ,x<0 例如: 如x=-1010111 n =8 则 [x]补=28-|-1010111| =100000000-|1010111| =10101001 (mod 28) 这种方法因为要作一次减法很不方便, 一般不用
b、从原码求补码 这是更经常采用的简单而实用的方法 当x是正数时,[x]补= [x]原 当x是负数时,x的原码符号位保持“1”, 其余各位取反加1便得到补码。也就是取其 反码加1: [x]补= [x]反+1 举例: X=-1010111B 则 [x]原=11010111B [x]反=10101000B [x]补= [x]反+1=10101001B
154
14.5
108
12.625
6C
C.A
1.2、计算机数值数据的表示方法
1、机器数和真值 (1)机器数 数在计算机中的二进制表示形式称为 机器数。机器数有以下几个基本特点: A) 数的符号数值化 一般规定以0代表符 号“+”,1代表符号“-”。 B)计算机中通常只表示整数或小数,因此 约定小数点隐含在一个固定的位置,不再 占用一个位数。
(3)无符号数 当计算机字长的所有二进制位都用来表 示数值时,称为无符号数。一般在全部是正 数运算且不出现负值结果的场合使用,可以 省略符号位,使用无符号数表示。 说明:1)在计算机中无符号数通常用于表示 地址。 2)有符号数与无符号数的处理是有差 别的。
2、计算机符号数的表示方法 符号数值化之后,为了方便地对机器数 进行算术运算,提高运算速度,人们设计了 符号数的各种编码方法,最常见的有原码、 反码和补码。