🏷️ 知识点:浮点数的表示和运算
在 C 语言的不同类型的数据混合运算中,要先转换为同一类型后进行运算。设一表达式 中包含有int 型 、long 型、char 型和 double 型的变量与数据,则表达式最后的运算结果 是(),这4种类型数据的转换规律是()。
A. long,int→char→double→long B.long,char→int→long→double C. double,char→int→long→double D.double,char→int→double→long
[tag_link]
正确答案:C
长度相同但格式不同的两种浮点数,假设前者阶码长、尾数短,后者阶码短、尾数长, 其他规定均相同,则它们可表示的数的范围和精度为()。
A. 两者可表示的数的范围和精度相同 B. 前者可表示的数的范围大但精度低 C. 后者可表示的数的范围大且精度高 D. 前者可表示的数的范围大且精度高
[tag_link]
正确答案:B
浮点数的IEEE 754 标准对尾数编码采用的是()。
A. 原码 B. 反码 C. 补码 D. 移码
[tag_link]
正确答案:A
在 IEEE 754标准规定的64位浮点数格式中,符号位为1位,阶码为11位,尾数为52 位,则它所能表示的最小规格化负数为()。
A. -(2-2⁵²)×2-1023 B.-(2-2-5)×2+1023 C. -1×2-1024 D.-(1-2-5²)×2+2047
[tag_link]
正确答案:B
按照IEEE 754 标准规定的32位单精度浮点数41A4C000H 对应的十进制数是()。
A. 4.59375 B.-20.59375 C.-4.59375 D.20.59375
[tag_link]
正确答案:D
在浮点数编码表示中,()在机器数中不出现,是隐含的。
A. 阶码 B. 符号 C. 尾数 D. 基数
[tag_link]
正确答案:D
若某单精度浮点数、某原码、某补码、某移码的32位机器数均为0xF0000000, 则这些 数从大到小的顺序是()。
A. 浮原补移 B. 浮移补原 C. 移原补浮 D. 移补原浮
[tag_link]
正确答案:D
采用规格化的浮点数最主要是为了()。
A. 增加数据的表示范围 B. 方便浮点运算 C. 防止运算时数据溢出 D. 增加数据的表示精度
[tag_link]
正确答案:D
设 x 是采用IEEE 754标准表示的32位单精度浮点数,下列说法中正确的是()。 I. 当 x|<1.0×2-¹26 时 ,x 将被置为机器零 IⅡ . 当 x>1.0×2¹27 时,将发生溢出 II.x 所能表示的最小非规格化正数与最大非规格化负数的绝对值相等 IV.x 可表示的最大正数与最小负数的绝对值相等
A. I,II,II,IV B.I,II C.I,I,IV D.II,IV
[tag_link]
正确答案:D
在浮点运算中,下溢指的是()。
A. 运算结果的绝对值小于机器所能表示的最小绝对值 B. 运算的结果小于机器所能表示的最小负数 C. 运算的结果小于机器所能表示的最小正数 D. 运算结果的最低有效位产生的错误
[tag_link]
正确答案:A
判断浮点数运算是否溢出,取决于( )。
A. 尾数是否上溢 B. 尾数是否下溢 C. 阶码是否上溢 D. 阶码是否下溢
[tag_link]
正确答案:C
假定采用IEEE754 标准中的单精度浮点数格式表示一个数为45100000H, 则该数的值是()。
A. (+1.125)10×2¹⁰B.(+1.125)10×2 C.(+0.125)1o×2 D.(+0.125)10×210
[tag_link]
正确答案:B
已知 float 型采用IEEE754 单精度浮点数格式,若x、y为 float 型变量,且x=-126,y=15.75, 则执行语句z=x+y 时,在浮点运算单元中进行对阶操作后的结果是()。
A. x 不变,y 为010000101,0.001111110…0 B. x 不变,y 为010000110,0.001111110.…0 C. y 不变,x 为110000101,0.001111110.…0 D. y 不变,x 为110000110,0.001111110.…0
[tag_link]
正确答案:A
假设x 和y 均是float 型变量,x 的真值为1,y 的真值为0.1。已知0.1的二进制表示为 无限循环小数0.00011[0011]. (重复因子为0011),某计算机采用IEEE 754单精度格 式及就近舍入方式,则计算x+y 的结果用十六进制机器数表示为()。
A. 3F800000 B.3F8C CCCD C.3F8C CCCC D.3F80000C
[tag_link]
正确答案:B
在 IEEE754 标准浮点格式中,非规格化浮点数表示为()。
A. 阶码为0,尾数为任意非0的二进制数 B. 阶码为255,尾数全为0 C. 阶码为255,尾数为任意非0的二进制数 D. 阶码为0,尾数全为0
[tag_link]
正确答案:A
在 IEEE 754 单精度浮点数加减运算的对阶阶段,若需将某操作数的尾数右移以对齐阶 码,则关于其隐含的前导“1”,以下说法正确的是()。
A. 隐含的“1”始终保留在最高位,在右移过程中不会被移出 B. 隐含的“1”参与右移,但为保持规格化形式,移位后仍重置为1 C. 对阶移位前,需先将隐含的“1”恢复到尾数高位,再整体右移 D. 非规格化数也包含隐含的“1”,因此同样需要恢复后再移位
[tag_link]
正确答案:C
在IEEE 754单精度浮点数加减运算中,若两个操作数阶码之差的绝对值为△E, 当其大 于或等于()时,阶码较小的操作数对结果无影响,结果直接取阶码较大的操作数(假 设采用就近舍入的方式)。
A. 24 B. 25 C. 126 D.128
[tag_link]
正确答案:B
下列关于机器字长的叙述中,错误的是()。
A. 机器字长是指CPU 中定点运算数据通路的宽度 B. 机器字长通常与CPU 通用寄存器的位数一致 C. 机器字长决定了定点数的表示范围和精度 D. 机器字长对计算机硬件造价没有影响
[tag_link]
正确答案:
计算机中的信息按边界对齐方式存储的含义是()。
A. 信息的字节长度必须是整数 B. 信息单元的字节长度必须是整数 C. 信息单元的存储地址必须是整数 D. 信息单元的存储地址是其字节长度的整数倍
[tag_link]
正确答案:D
假设已定义三个 int 型变量x 、y 和z,sizeof(int)=4,double 型采用IEEE 754 双精度浮 点数格式,变量dx 、dy 和 dz 的声明和初始化如下: double dx =(double)x; double dy =(double)y; double dz =(double)z; 则下列关系表达式中永远为真的是()。 I.dx+dy==(double)(x+y) II.(dx+dy)+dz=dx+(dy+dz)
A. I 和 Ⅱ B. 仅 I C. 仅 Ⅱ D. 无正确项
[tag_link]
正确答案:D
在按字节编址的计算机中,采用小端方式存储数据,某静态二维数组b的声明如下:static short b[2][4]= 2,9,-1,5},{3,1,-6,2}}; 若b 的首地址为0x8049820, 采用按行优先存储,地址0x804982c中 的 内 容 是 ( ) 。A.FAH B.FFH C.00H D.05H22. 在按字节编址的计算机中,数据在存储器中以小端方式存放。假定 int 型变量 i 的地址为08000000H,i 的机器数为01234567H, 地址08000000H单元的内容是()。A . 01H B.23H C.45H D.67H23.在按字节编址的32位计算机中,按边界对齐方式为以下结构型变量x 分配存储空间:struct cont_info{char id;unsigned post;char phone;}x;若x 的首地址为0x8049820, 则成员变量 phone 的起始地址为()。A.0x8049828 B.Ox8049826 C.0x8049825 D.Ox804982224. 假定变量i 、f 的数据类型分别是int 、float 。已知i=12345,f=1.2345×2³, 则在一个32 位机器中执行下列表达式时,结果为“假”的是()。A.i==(int)(double)i B.f==(float)(double)fC.i==(int)(float)i D.f==(float)(int)f25. 有以下C 语言代码段:int m= 13;float a=12.6,x;x=m/2 +a/ 2;printf(“8f\n”,x);
[tag_link]
正确答案:A
在按字节编址的计算机中,采用小端方式存储数据,某静态二维数组b的声明如下: static short b[2][4]= 2,9,-1,5},{3,1,-6,2}}; 若b 的首地址为0x8049820, 采用按行优先存储,地址0x804982c中 的 内 容 是 ( ) 。
A. FAH B.FFH C.00H D.05H
[tag_link]
正确答案:A
在按字节编址的计算机中,数据在存储器中以小端方式存放。假定 int 型变量 i 的地址 为08000000H,i 的机器数为01234567H, 地址08000000H单元的内容是()。 A . 01H B.23H C.45H D.67H
[tag_link]
正确答案:D
在按字节编址的32位计算机中,按边界对齐方式为以下结构型变量x 分配存储空间: struct cont_info{ char id; unsigned post; char phone; }x; 若x 的首地址为0x8049820, 则成员变量 phone 的起始地址为()。
A. 0x8049828 B.Ox8049826 C.0x8049825 D.Ox8049822
[tag_link]
正确答案:A
假定变量i 、f 的数据类型分别是int 、float 。已知i=12345,f=1.2345×2³, 则在一个32 位机器中执行下列表达式时,结果为“假”的是()。
A. i==(int)(double)i B.f==(float)(double)f C. i==(int)(float)i D.f==(float)(int)f
[tag_link]
正确答案:D
有以下C 语言代码段: int m= 13; float a=12.6,x; x=m/2 +a/ 2; printf(“8f\n”,x); 执行上述代码后,输出的x 值 为 ( ) 。
A. 12.000000 B.12.300000 C.12.800000 D.12
[tag_link]
正确答案:B
现有一计算机字长32位( D₃₁~D₀), 符号位是最高位。 对于二进制1000111111101111110000000000000, 1)表示一个补码整数,其十进制值是多少? 2)表示一个无符号整数,其十进制值是多少? 3)表示一个IEEE 754 标准的单精度浮点数,其值是多少?
[tag_link]
C
假定变量i 是 一个32位的int 型整数,f 和 d 分别为float 型 ( 3 2 位 ) 和double 型(64 位)实数。分析下列各布尔表达式,说明结果是否在任何情况下都是“true”。 1)i=(int)(double)i) 2)f=(float)(int)f) 3)f==(float)((double)f) 4)d==(double)((float)d)
[tag_link]
B
已知两个实数x=-68,y=-8.25, 它们在C 语言中定义为float型变量,分别存放在寄 存器A 和 B中。另外,还有两个寄存器C 和 D。A 、B 、C 、D都是32位的寄存器。请 问(要求用十六进制表示二进制序列): 1)寄存器A 和 B 中的内容分别是什么? 2) x 和 y 相加后的结果存放在寄存器C中,寄存器C 中的内容是什么? 3) x 和 y 相减后的结果存放在寄存器 D 中,寄存器D中的内容是什么?
[tag_link]
A
对下列每个 IEEE 754 单精度数值,解释它们所表示的是哪种数字类型(规格化数、非 规格化数、无穷大、0)。当它们表示某个具体数值时,请给出该数值。 1)0000 0000 0000 0000 0000 0000 0000 0000 2)0100 0010 0100 0000 0000 0000 0000 3)1000 0000 0100 0000 4)1111 1111 1000 0000 0000 0000 0000
[tag_link]
B