单项选择(2016年春程序员软考)

设32位浮点数格式如下。以下关于浮点数表示的叙述中,正确的是【 】。

A、浮点数的精度取决于尾数M的位数,范围取决于阶码E的位数

B、浮点数的精度取决于阶码E的位数,范围取决于尾数M的位数

C、浮点数的精度和范围都取决于尾数M的位数,与阶码E的位数无关

D、浮点数的精度和范围都取决于阶码E的位数,与尾数M的位数无关

答案解析

A

【解析】

定点数是指表示数据时小数点的位置固定不变。小数点的位置通常有两种约定方式:定点整数(纯整数,小数点在最低有效数值位之后)和定点小数(纯小数,小数点在最高有效数值位之前)。

浮点数是小数点位置不固定的数,采用尾数和阶码结合的方式来表示数值,它能表示更大范围的数。

很明显,一个数的浮点表示不是唯一的。当小数点的位置改变时,阶码也相应改变,因此可以用多种浮点形式表示同一个数。浮点数所能表示的数值范围主要由阶码决定,所表示数值的精度则由尾数决定。若不对浮点数的表示做出明确规定,同一个浮点数的表示就不是唯一的。

讨论

(1)写出十进制数-11.4的规格化浮点数形式表示,具体要求是:阶码用4位二进制移码,尾数用12位原码(含数的符号);(2)写出上述格式定义的规格化浮点数所能表示的绝对值的最大和最小的正数和绝对值最大和最小的负数的值;(3)说明上述格式定义的浮点数的机器零;(4)说明浮点数中隐藏位的含义与用法。

某计算机字长32位,浮点表示时,阶码占8位,尾数占24位,各包含一位符号位,问:(1)带符号定点小数的最大表示范围是多少?(2)带符号定点整数的最大表示范围是多少?(3)浮点表示时,最大的正数是多少?(4)浮点表示时,最大的负数是多少?(5)浮点表示时,最小的规格化正数是多少?

将8421BCD码(001100000001)BCD转换为十六进制的结果是什么?

一个16位的浮点数,,阶码用4位数表示,尾数用12位(各包含一位符号位)表示 ,该浮点数基数为2,其阶码用补码表示,尾数用原码表示,求该浮点数表示范围。

假定编译器规定int和short类型长度分别为32位和16位,执行下列C语言语句:unsigned short x=65530;unsigned int y=x;得到y的机器数为【 】。

float型数据通常采用IEEE754单精度浮点数格式表示。若编译器将float型变量x分配在一个32位浮点寄存器FR1中,且x=-8.25,则FR1的内容是【 】。

计算机中常用原码、反码、补码和移码表示 数据,其中表示0时仅用一个编码的是【 】

将多项式27+25+22+20表示为十六进制数,值为【 】。

将多项式27+25+22+20表示为十进制数,值为【 】。

已知 float 型变量用 IEEE754 单精度浮点数格式表示。若 float 型变量 x 的机器数为8020 000H,则 x 的值【 】。[注:此题有问题,求证中]