2.1数据与文字的表示方法
2.1.1数据格式
(1)定点数的表示方法
所谓定点格式,即约定机器中所有数据的小数点位置是固定不变的。由于约定在固定的位置,小数点就不再使用记号“."来表示。原理上讲,小数点位置固定在哪一位都可以,但是通常将数据表示成纯小数或纯整数。
假设用一个n+1位字来表示一个定点数x,其中一位xn用来表示数的符号,其余位数代表它的量值。为了将整个n+1位统一处理,符号位xn放在最左位置,并用数值0和1分别代表正号和负号,这样,对于任意定点数x=xnxn-1...x1x0,在定点机中可表示为如下形式:
纯小数的表示范围为 0≤|x|≤1-2^(-n)
纯整数的表示范围为 0≤|x|≤2^n-1
(2)浮点数的表示方法
把数的范围和精度分别表示的方法,相当于数的小数点位置随比例因子的不同而在一定范围内可以自由浮动,所以称为浮点表示法。
任意一个十进制数N可以写成 N=10^E.M
同样,在计算机中一个任意二进制数N可以写成 N =2^e.M
其中M称为浮点数的尾数,是一个纯小数。e是比例因子的指数,称为浮点数的指数,是一个整数。
在机器中表示一个浮点数时,一 是要给出尾数,用定点小数形式表示。尾数部分给出有效数字的位数,因而决定了浮点数的表示精度。二是要给出指数,用整数形式表示,常称为阶码,阶码指明小数点在数据中的位置,因而决定了浮点数的表示范围。浮点数也要有符号位。计算机中,一个机器浮点数由阶码和尾数及其符号位组成:
(3)十进制数串的表示方法
①字符串形式
1字节存放一个十进制的数位或符号位
②压缩的十进制数串形式
1字节存放两个十进制的数位
+123表示为
-12表示为
2.1.2数的机器码表示
(1)原码表示法(符号位加上二进制数的绝对值)
若定点整数的原码形式为xn xn-1...x1 x0(xn为符号位),则原码表示的定义是
式中,[x]原 是机器数, x是真值
例如,x=+1001,则[x]原=01001;x=-1001,则[x]原=11001;
对于0,原码机器中往往有“+0”、“-0”之分,故有两种形式:
①[+0]原=0000...0
②[-0]原=1000...0
(2)反码表示法(正数原码=反码,负数原码除了符号位全都取反=反码)
例:x=+122,y=-122
[x]原=01111010,[x]反=01111010
[y]原=11111010,[y]反=10000101
(3)补码表示法(正数原码=反码=补码,负数反码+1=补码)
补码定义:
补码表示的真值:
x=0时,[x]补=[+0]补=[-0]补=0
例:
(4)移码表示法(正数移码格式:(真值的)符号位,其余数字;负数移码=2^5 +e)
传统定义: [e]移=2^k +e,2^k>e≥-2^k [e]移为机器数,e为真值
例:e=+10101,[e]移=1,10101;e=-10101,[e]移=2^5 +e=2^5 -10101=0,01011
移码中的逗号不是小数点,而是表示左边一位是符号位。显然,移码中符号位ek表示的规律与原码、补码、反码相反。
移码表示法对两个指数大小的比较和对阶操作都比较方便,因为阶码域值大者其指数值也大。
(5)浮点数的机器表示
IEEE754标准
例:
2.1.3字符与字符串的表示方法
人字机交换信息时使用英文字母、标点符号、十进制数及诸如$,%,+等符号。然而数字计算和机只能处理二进制数据,因此, 上述信息应用到计算机中时,都必须编写成二进制格式的代码,也就是字符信息用数据表示,称为符号数据。目前国际上普通采用的一种字符系统是七单位的IRA码,其美国版称为ASCII码
字符串是指连续的一串字符,通常方式下,它们占用主存中连续的多字节,每字节存一个字符。
2.1.4汉字的表示方法
(1)汉字的输入编码
①数字编码
常用的是国标区位码,用数字串代表一个汉字输入
②拼音码
以汉语拼音为基础的输入法
③字形编码
用汉字的形状进行的编码
(2)汉字内码
汉字内码是用于汉字信息的存储、交换、检索等操作的机内代码
(3)汉字字模码
字模码是用点阵表示的汉字字形代码,它是汉字的输出形式
2.1.5校验码
①奇校验
设X=(x0 x1 ...xn-1)是一个n位字,C‘=x0 ⊕x1⊕...⊕xn-1;当X中包含奇数个1时,才能使C’=1,即C=0
②偶校验
同理,C=x0 ⊕x1⊕...⊕xn-1;当X中包含偶数个1时,使C=0
奇偶校验提供奇数个错误检测,无法检测偶数个错误,更无法识别错误信息的位置
2.2定点加法、减法运算
2.2.1补码加法
公式 [x]补+[y]补=[x+y]补
(1)x≥0,y≥0,则x+y≥0; 相加两数都是正数,和一定也是正数
(2)x≥0,y<0,则x+y≥0或x+y<0; 相加两数一个为正,一个为负,相加结果有正、负两种可能
(3)x<0,y≥0,则x+y≥0或x+y<0; 相加两数一个为正,一个为负,相加结果有正、负两种可能
(4) x<0,y<0,则x+y≤0; 相加两数都是负数,和一定也是负数
例:
2.2.2补码减法
公式 [x-y]补=[x]补-[y]补=[x]补+[-y]补
[y]补求[-y]补的法则是:对[y]补包括符号位”求反且最末位加1“
例:
2.2.3溢出概念与检测方法
运算过程中如出现大于字长绝对值的现象,称为”溢出“
两个正数相加,结果大于机器字长所能表示的最大正数,称为“正溢”
判断”溢出“发生的方法
(1)变形补码
(2)单符号位法
2.2.4基本的二进制加法/减法器
半加器
全加器
全加器缺点:高位要等待低位运算
2.3定点乘法运算
(1)人工算法与机器算法的同异性
(2)不带符号的阵列乘法器
(3)带符号的阵列乘法器