6.IEEE754如何规定的?阶码和尾数如何规定?举个例子进行计算。
32位IEEE754浮点数据格式:由符号位S,阶码部分E和尾数部分M组成,具体形式如下:
数符S
阶码E
尾数M
S占一位
E占8位
M占23位
关于阶码字段E,在IEEE754标准中,阶码部分采用偏移值为127(01111111)的移码表示。
关于尾数字段,在IEEE754标准中,约定小数点左边隐含一位1,即尾数的实际有效位数为24位,完整的尾数形式为1.M,但在进行浮点数数据表示时只保存M。这也解释正是因为位数变成1.M,阶码的偏移值才为127而不是128(即2⁷)。
例子:题目:试将(-0.1101)₂用IEEE短浮点数格式表示出来
答案:(BF500000 )ᴴ
解析:
-0.1101=1.101 x 2 ^(-1)x (-1) ^1
数符为1
阶码=-1+127=126=(01111110)₂
因此(-0.1101)₂可表示为:
数符
阶码
尾数
1
01111110
10100000000000000000000
1 01111110 10100000000000000000000
转换为16进制有:
1011
1111
0101
0000
0000
0000
0000
0000
B
F
5
0
0
0
0
0
即BF500000 H
7.计算机中字符数据如何表示?汉字如何在计算机中表示?
非数值数据是一种没有数值大小之分的数据,也称为字符数据,如符号、文字等。
字符的表示方法:国际上广泛采用美国国家信息交换标准代码,简称ASCII码表示字符。它选用了常用的128个符号,并用7位二进制对它们进行编码,即用0000000~11111111,如果加上一个校验位,可正好用一个字节(8位)表示一个字符。
汉字编码:计算机要对汉字信息进行处理,首先要将汉字转换为计算机可以识别的二进制形式并输入到计算机,这是由汉字输入码(汉字的输入) 完成的;汉字输入到计算机后,还需要转换成内码(计算机内存储和处理汉字时使用的编码) 才能被计算机处理,如果要显示或者打印汉字,还需要将汉字的内码转换成 字形码(汉字的输出码)。
一个汉字由2个字节(16位)表示。
8.如何判断定点数补码加法和减法运算中有否溢出?
溢出检测主要有三种方法:
根据操作数和运算结果的符号位是否一致进行检测:显然,只有两个符号相同的数相加才有可能产生溢出。
设Xₘ和Yₘ为参加运算数的符号位,Sₘ为结果的符号位,V为溢出标志位,当V取1时表示发生溢出:
根据运算过程中最高数据位的进位与符号位的进位位是否一致进行检测:
设运算时有效数据位产生的进位信号为Cₘ,符号位产生的进位信号为Cₙ,当Cₘ和Cₙ同步的情况下,才会发生溢出:
利用变形补码进行检测:变形补码,即用两个二进制位来表示数据的符号位,其余与补码相同。采用变形补码后,正数的符号以“00”表示,负数的符号以“11”表示。若运算结果的符号位为“01”或“10”,则表示分别产生了上溢和下溢。
9.算术移位和逻辑移位有什么不同?它们分别左移和右移要注意什么?
不同点: 算术左移和算术右移主要用来进行有符号数的倍增、减半; 逻辑左移和逻辑右移主要用来进行无符号数的倍增、减半。
逻辑移位
左移:左边一位移出,右边空出位补0;
移位前的数据:11101110
移位后的数据:11011100
右移:右边一位移出,左边空出位补0;
移位前的数据:11101110
移位后的数据:01110111
算术移位
左移:各位依次左移,右边空出位补0,一次移位相当于乘以2,当符号位改变表明溢出。
移位前的数据:11101110
移位后的数据:11011100
右移:符号位保持不变,其余各位依次左移,最右边移位移出,将符号位复制到左边空出的位,一次移位相当于除以2。
移位前的数据:11101110
移位后的数据:11110111
10.两个浮点数是如何实现加减的?举例说明加减法的步骤。
设x=2⁻⁰¹¹x(-0.101100),y=2⁻⁰¹⁰ x0.011110,又假定数的阶码为3位,尾数为6位(均不含符号位),且都用补码表示,按照补码浮点数运算步骤计算x+y。
先用补码形式表示x和y(设符号位均取2位):
[x]补=11 101 11.010100(101为-011取补码,010100为101100取补码)
[y]补=11 110 00.011110(110为-010取补码,011110为011110取补码)
对阶
[△E]补=[Ex]补+[-Ey]补=11 101+00 010=11 111
所以△E=-1
所以x的阶码比y的阶码小1。
根据对阶的原则(小的阶码向大的阶码看齐),将x的尾数向右移动1位,同时阶码加1,对阶后的x为:
[x]补=11 110 11.101010
尾数的运算 11.101010
+00.011110
 ̄ ̄ ̄ ̄ ̄ ̄
00.001000
尾数规格化处理
尾数的形式为00.01X…X,故要左移规格化,将结果的尾数向左移动两位,同时阶码减2。
规格化处理的结果为[x+y]补=11100 00.100000
舍入
最后没有丢掉有效数字,所以不需要舍入。
溢出判断
由于阶码的双符号位相同,故没有发生溢出。
最后的结果为: x+y=2⁻¹⁰⁰x0.100000
11.简述奇偶校验
偶校验时,若有效信息中有偶数个1,则校验位取值为0;若有效信息中有奇数个1,则校验位取值为1。
奇校验时,若有效信息中有偶数个1,则校验位取值为1;若有效信息中有奇数个1,则校验位取值为0。
奇偶校验提供的有错信息可靠。
12.选择计算机数据表示时要考虑哪些因素?
数据类型:包括数值数据和非数值数据,常见的数值数据类型包括小数、整数、实数,非数值数据包括ASCII和汉字。
数据表示范围和精确度:这与计算机的字长有关。
存储和处理的代价:设计的数据格式要便于存储和处理,这不仅有利于降低数据存储和处理过程中对硬件资源的消耗,而且能提高数据处理的速度。
软件的可移植性。