vgghhhgllljh 2021-11-21 21:14 采纳率: 50%
浏览 124
已结题

运用位运算,计算浮点数的两倍(乘以2)

输入一个浮点数 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;
}

  • 写回答

1条回答 默认 最新

  • 五一编程 2021-11-21 21:47
    关注

    int MyTimesTwo ( int x ){
    return 2*x;
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月21日
  • 已采纳回答 5月13日
  • 创建了问题 11月21日

悬赏问题

  • ¥15 51单片机使lcd显示器开机闪烁预设字符闪烁3次需要加什么代码
  • ¥50 C# 使用DEVMOD设置打印机首选项
  • ¥15 麒麟V10 arm安装gdal
  • ¥15 想用@vueuse 把项目动态改成深色主题,localStorge里面的vueuse-color-scheme一开始就给我改成了dark,不知道什么原因(相关搜索:背景颜色)
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备
  • ¥100 如何用js写一个游戏云存档
  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题