输入一个浮点数 x ,编写函数,运用位运算,计算 并返回 2x
函数接口定义:
// 计算并返回 2*x
int MyTimesTwo ( int x );
在以上函数中,参数 int x 中实际存储着一个浮点数,就是说:它的值不能够按照整数格式来解析,而应该将它的32个bit按照浮点数的格式来解析。
返回值虽然是整数类型,但也是按照浮点数格式保存的浮点数。
#include <stdio.h>
// 计算并返回 x * 2
int MyTimesTwo ( int x );
int main()
{
float x, y;
int m, n;
scanf("%f", &x);
m = *(int*)&x; //复制bit值
printf("x = %f\n", x);
n = MyTimesTwo( m );
y = *(float*)&n; //复制bit值
printf("x * 2 = %f\n", y);
return 0;
}