zoukankan      html  css  js  c++  java
  • 浮点数的存储、类型转换知识点(面宝P34)

    以float a=1.0f为例:

    (int)a实际上是以浮点数a为参数构造了一个整型数,该整数的值是1;

    (int&)a则是告诉编译器将a当作整数看(并没有做任何实质上的转换),即读a的内存时按照整数来读取,而不考虑a本来的类型。为1065353216(3f800000的十进制表示);

    (int)&a是将a的地址(16进制数)转换为十进制,没有什么实际意义。

    问题分析:

    (1)float类型中,所存储的指数位=实际的指数+127,尾数部分为底数的小数部分(底数整数部分应为1,省略不写)。

      特例:float a=0.0f;中0的存储,指数尾数均为0。

    #include <iostream>
    #include <stdio.h>
    using namespace std;
    int main(){
    float b=0.0f;
    cout<<(int)b<<endl;
    cout<<&b<<endl;
    cout<<(int&)b<<endl;
    cout<<((int)b==(int&)b)<<endl;
    return 0;
    }

    float b=0.0f;运行输出:

    若改为 float b=1.0f;则结果如下(1065353216是3f800000的十进制表示)

  • 相关阅读:
    1216
    构建之法 1 2 3
    复利计算
    实验总结
    0916编译原理第二次上机作业
    0909第一次作业
    linux 更新jdk
    Java中使用OpenSSL生成的RSA公私钥进行数据加解密
    quartz定时任务时间表达式说明
    IntelliJ IDEA使用说明
  • 原文地址:https://www.cnblogs.com/seven7seven/p/3621550.html
Copyright © 2011-2022 走看看