单双精度浮点数的存储

news/2024/10/20 6:33:06/

//int main()
//{
//    float f = 5.5;
//    //5.5
//    // 101.1 二进制
//    // (-1)^0 * 1.011*2^2
//    // s = 0 M = 1.011 E = 2
//    // E存的是2 + 127 = 129 
//    // 0 10000001 011  00000000000000000000000
//    // s     E              M
//    //   4    0   B    0   0   0  0   0   十六进制
//    // 如果E 为全0 规定1-127 或1-1023为E的真实值
//    // M不在加上第一位的1.直接还原为
//    // 0.xxxxxxx的小数 表示正负0 以及接近0的数字
//    // 如果E 为全1  E的真实值为255-127 = 128 
//    // 表示正负无穷大
//    //
//    return 0;
//}
int main()
{
    /*double d = 1E10;
    printf("%lf\n", d);*/
    int n = 9;
    //0 00000000 00000000000000000001001 - 补码
    // 
    //
    float* pfloat = (float*)&n;
    printf("n的值为:%d\n", n);//---9
    //把9的补码按浮点数存储方式取出
    // (-1)^0 * 0.00000000000000000001001 * 2^-126
    printf("pfloat的值为:%f\n", *pfloat);//---0.000000
    *pfloat = 9.0;
    //1001.0 二进制
    // (-1)^0 * 1.001 * 2^3
    // E = 3 + 127 
    // 0 10000010 001 00000000000000000000 浮点类型存入
    // 按整型int 类型取出 
    // 
    //
    printf("num的值为:%d\n", n);//---1091567616
    printf("pfloat的值为:%f\n", *pfloat);//---9.000000
    //9.0
    //1001.0 二进制
    //(-1)^0 * 1.001 * 2^3  2^3 是二进制的科学计数法
    //V = (-1)^s * M * 2^E (IEEE754 标准) 
    // s = 0  M = 1.001 E = 3
    // 1 <= M < 2  表示1.xxxxxxxx M只需要存 小数点后面的xxxxxxxx就可以了
    // 指数E是unsigned int 无符号数  E取8位 取值范围0-255
    // E取11位时 取值范围为0-2047
    // 0.5
    // 0.1 2^-1  等于1/2^1 二进制
    // (-1)^0 * 1.0 *2^-1
    // E 科学计数法实际情况会出现负数的,存储内存时加一个取值范围内的中间数
    // 8位的为127 11位的位1023  这样就可以存为无符号数
    // float 32位浮点数,最高的1位是符号位s,
    //接着的8位是指数E,剩下的23位是有效数字M

    // double 64位浮点数,最高的1位是符号位s,
    //接着的11位是指数E,剩下的52位是有效数字M
    return 0;
}


http://www.ppmy.cn/news/96616.html

相关文章

HTML <em> <strong> <dfn> <code> <samp> <kbd><var> <cite> 标签

定义和用法 以下元素都是短语元素。虽然这些标签定义的文本大多会呈现出特殊的样式,但实际上,这些标签都拥有确切的语义。 我们并不反对使用它们,但是如果您只是为了达到某种视觉效果而使用这些标签的话,我们建议您使用样式表,那么做会达到更加丰富的效果。 ">&…

性能优化概述

一见如故 Lighthouse跑分&#xff1a;点加号&#xff08;左上角&#xff09; > 设备选桌面、类型选性能、设置&#xff08;右上角&#xff09;选用去缓存LCP(Largest Contentful Paint) 最大内容呈现到屏幕上的时间&#xff08;多指图片、视频&#xff09;FID(First Input …

从零开始手搓一个STM32与机智云的小项目——硬件介绍

文章目录 前言硬件简介选型1.主控2.电源3.电机驱动4.舵机驱动5.USB转TTL6.其他模块 原理图绘制1.STM32最小系统1.电源输入2.晶振选择3.复位电路4.BOOT选择电路5.下载电路 2.电源部分及与PC通信部分3.功能模块的实现1.串口2.定时器输入捕获与输出比较3.硬件SPI4.ADC5.温湿度传感…

【华为OD机试】服务失效判断【2023 B卷|200分】

【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! 题目描述 某系统中有众多服务,每个服务用字符串(只包含字母和数字,长度<=10)唯一标识, 服务间可能有依赖关系,如A依赖B,则当B故障时导致A也故障。 依赖具有传递性,如A依赖B,B依赖C,当…

使用speedtest-cli进行服务器上传和下载速度测试

speedtest-cli是一个简单而强大的命令行工具&#xff0c;可以帮助我们方便地测试服务器的上传和下载速度。本文将介绍如何使用speedtest-cli进行服务器速度测试。 步骤1. 下载speedtest-cli 使用以下命令从GitHub上下载speedtest.py文件&#xff1a; wget https://raw.githu…

幂等问题解决

什么是幂等性&#xff1f; 幂等&#xff08;idempotent、idempotence&#xff09;是一个数学与计算机学概念&#xff0c;常见于抽象代数中。 在数学中&#xff0c;主要有两个定义 如果在一元运算中&#xff0c;x 为某集合中的任意数&#xff0c;如果满足 f(f(x))f(x)&#xff0…

vue css变量实现多主题皮肤切换

实现方式 多主题皮肤切换有很多种实现方式&#xff0c;可以用css预处理器实现&#xff0c;可以用js实现&#xff0c;其实最近简单的一种方式是用css变量(css variable)实现 单页面应用中&#xff0c;可以通过设置body的css变量爱控制整个系统的颜色&#xff0c;body添加一个属…

antV 事件多次触发问题,解绑

由于最近刚刚接触 antV - 数据可视化,对于他的事件应用还比较陌生,在应用中莫名其妙多次调用,想了很多方式如节流……,但是没有用。 业务介绍 当我点击流程图中的某一项进行提示,每次双击都会递增调用。 解决过程 当时想着用节流的方式,但是很遗憾,他还是疯狂递增调用…