首页 > 试题广场 >

以下是一组关于浮点数按位级进行运算的编程题目,其中用到一个数

[问答题]
以下是一组关于浮点数按位级进行运算的编程题目,其中用到一个数据类型float_bits,它被定义为unsigned int类型。以下程序必须采用IEEE754标准规定的运算规则,例如,舍入应采用就近舍入到偶数的方式。此外,代码中不能使用任何浮点数类型、浮点数运算和浮点常数,只能使用float_bits类型;不能使用任何复合数据类型,如数组、结构和联合等;可以使用无符号整数或带符号整数的数据类型、常数和运算。要求编程实现以下功能并进行正确性测试。
(1)计算浮点数f的绝对值|f|。若f为NaN,则返回f,否则返回|f|。函数原型为:
float_bits float_abs(float_bits f);
(2)计算浮点数f的负数-f。若f为NaN,则返回f,否则返回-f。函数原型为:
float_bits float_neg(float_bits f);
(3)计算0.5*f。若f为NaN,则返回f,否则返回0.5*f。函数原型为:
float_bits float_half(float_bits f);
(4)计算2.0*f。若f为NaN,则返回f,否则返回2.0*f。函数原型为:
float_bits float_twice(float_bits f);
(5)将int型整数i的位序列转换为float型位序列。函数原型为:
float_bits float_12f(float_bits f);
(6)将浮点数f的位序列转换为int型位序列。若f为非规格化数,则返回值为0;若f是NaN或自然数或超出int型数可表示范围,则返回值为0x80000000;若f带小数部分,则考虑舍入。函数原型为:
int float_f21(float_bits f);

这道题你会答吗?花几分钟告诉大家答案吧!