• 以二进制方式输出数字在内存中的存储形式


    对于二进制表示的float类型的2.5,其在内存中的表示为01000000  00100000  00000000  00000000,如果我们想打印出它在内存中是如何表示的,那么我们可以用1进行移位,与每个比特进行与运算,还是看看代码吧:
    对于输入参数,在visual studio下可以点击项目->属性->配置属性->调试->命令参数进行输入,在visual c++6.0可以点击工程->设置->调试->程序变量里输入。输入2.5打印看看,其结果与我们预期相同。

    #include <cstdlib>
    #include
    <iostream>
    using namespace std;

    void printBinary(const unsigned char val)
    {
    for (int i = 7;i>=0;i--)
    if(val&(1<<i))
    cout
    <<"1";
    else
    cout
    <<"0";
    }

    int main(int argc,char** argv)
    {
    if (argc!=2)
    {
    cout
    <<"Provide a number"<<endl;
    exit(
    0);
    }
    float d = (float)atof(argv[1]);
    unsigned
    char* cp = (unsigned char*)(&d);
    for (int i = 0; i<sizeof(float); i++)
    {
    printBinary(cp[
    sizeof(float)-1-i]);
    cout
    <<" ";
    }
    return 0;
    }

    ---
    可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明
  • 相关阅读:
    Recommender Systems 基于知识的推荐
    粒子群优化算法简介
    彻底弄懂LSH之simHash算法
    c++ 字符串函数用法举例
    Linux上的运行的jar包
    推荐系统判定标准
    python 细枝末节
    PV UV
    python解析json
    生成n对括号的所有合法排列
  • 原文地址:https://www.cnblogs.com/null00/p/2065101.html
Copyright © 2020-2023  润新知