1.进位计数制表示的要素有哪些?
- 数码:一组用来表示某种数制的符号。例如,十进制的数码是0、1、2、3、4、5、6、7、8、9;二进制的数码是0、1 。
- 基数:某数制可以使用的数码个数。例如,十进制的基数是10;二进制的基数是2 。
- 数位:数码在一个数中所处的位置。
- 权:权是基数的幂,表示数码在不同位置上的数值。
2.二进制、八进制、十进制、十六进制之间如何相互转换?
3.什么是真值,什么是机器数,机器数的常用码制有哪些?
- 真值:一般书写时表示的数。
- 机器数:在机器中进行编码表示的数。
- 机器数常用的码制为二进制(通常为八位二进制)。
4.什么是定点数?什么是浮点数?
定点表示法约定机器中所有数据的小数点位置固定。其中,将小数点的位置固定在数据的最高数位之前(或者符号位之后)的数据表示称为定点小数(例如:0.2333),而将小数点固定在最低数位之后的数据表示被称为定点整数(例如:2333)。
浮点表示法是小数点在数据中不固定,即小数点在数中可以浮动的一种数据表示方法,它由阶码和尾码两部分组成,其中阶码的位数决定数据的范围,尾数的位数决定数据的精确度。
5.浮点数的规格化是如何规定的?
在浮点运算过程中,为了保证数据的精度要求尾数的最高位为非0数码,即当尾数的值不为0时,其绝对值应大于或等于(1/2)₁₀。
对于非规格化浮点数,通过将尾数左移或右移,并修改阶码的值以满足规格化要求。
以补码表示为例,正数规格化后,尾数的形式为:
0.1XXXX…XX |
---|
负数规格化后,尾数的形式为:
1.0XXXX…XX |
---|
记号“X”可任取0或1。
正数规格化后,尾数的最大值为
0.11111…11 |
---|
尾数的最小值为
0.10000…00 |
---|
即(1/2)=<m<1。
负数规格化后,尾数的最大值为
1.01111…11 |
---|
尾数的最小值为
1.00000…00 |
---|
即-1<m=<(1/2)。
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和汉字。
- 数据表示范围和精确度:这与计算机的字长有关。
- 存储和处理的代价:设计的数据格式要便于存储和处理,这不仅有利于降低数据存储和处理过程中对硬件资源的消耗,而且能提高数据处理的速度。
- 软件的可移植性。