1、掌握有符号数的原码计算方法,以及通过原码求真值;
2、掌握补码计算的方法,以及通过补码求原码,然后求真值的方法。
- 通过原码求补码:符号位不变,各位取反,末位加1;
- 通过补码求原码:符号位不变,各位取反,末位加1;
3、原码中0有2种表示方法(正零和负零),补码中0只有一种表示方法(正零和负零的表示方法一致)
4、假设有符号数的位数为8(包括符号位),补码能表示的真值的范围?
- 补码能表示的真值范围为-128~+127(参见补码定义)
5、掌握求反码以及移码的方法。
6、什么是定点表示?什么是浮点表示?
- 定点表示:小数点固定在某一位置的数为定点数;
- 浮点表示:小数点位置可以浮动的数。
7、浮点数在机器中的表示形式,由哪几部分组成?
8、掌握规格化浮点数的表示范围(最大正数、最小正数、最大负数、最小负数)的计算方法。
9、IEEE754标准规定的浮点数由哪几部分组成?
10、IEEE754标准规定的浮点数中,阶码和尾数用什么形式表示?
- 阶码用移码表示,其偏移量是2^(n-1),尾数用原码表示。
11、float占多少位?double占多少位?
- float为短实数,占32位,其中阶码8位,尾数23位。
- double为长实数,占64位,其中阶码占11位,尾数为52位。
12、对正数进行算术移位,当正数采用源码、补码、反码时,左移或右移时,低位或高位添补什么代码?
- 对于正数,其源码、补码、反码均等于真值,左移时,低位添补0,右移时,高位添补0。
13、对负数进行算术移位,当负数采用源码、补码、反码时,左移或右移时,低位或高位添补什么代码?
- 对于源码,左移或右移时,低位或高位均添补0;
- 对于补码:左移时,低位添补0,右移时高位添补1
- 对于反码:左移或右移时,低位或高位均添补1;
14、什么是逻辑移位?
- 逻辑移位是对无符号数的移位,由于无符号数不存在符号位,左移时,高位移丢,低位补零。右移时,低位移丢,高位补零。
15、加法和减法时,什么情况下可能发生溢出?如何简单判断发生溢出?
- 正数加正数,正数减负数,负数加负数,负数减正数时,可能会发生溢出。
- 如果参加操作的两个数符号相同(转换成补码的加法),其结果与源操作数符号不同,即为溢出。
- 如果补码采用1位符号位,如果最高有效位的进位和符号位的进位不同,则发生溢出。
16、定点乘法运算可以使用加法和移位来实现吗?
17、浮点加减运算基本按照哪几步来进行?
- 对阶:使小数点对齐;
- 尾数求和:将对阶后的两个尾数按照定点加减运算规则求和;
- 规格化:尾数规格化;
- 舍入:尾数右规时,丢失数值位;
- 溢出判断:判断结果是否溢出。
18、如何判断浮点运算结果是否溢出?
- 阶码是否超出了其表示范围。(使用2个符号位判溢出)