IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 【C语言】浮点数的存储形式 -> 正文阅读

[C++知识库]【C语言】浮点数的存储形式

(一)引入浮点数

浮点数:就是计算机中的小数,按精度可分为单精度的float类型、双精度的double类型

我们通过一个简单的程序来重新认识下浮点数float类型(4字节)

#include <stdio.h>
int main()
{
	int a = 0x41440000;
	int* p = &a;
	float* fp = (float*)&a;
	
	printf("*p = %d\n", *p);
	printf("*fp = %f\n", *fp);
	return 0;
}

emmmm,这个程序的结果是什么呢??思考一会,我们来看看结果吧
在这里插入图片描述
可以看到*p就是0x41440000转成整型输出1094975488,这个没什么问题,关键问题在于同样的地址,使用float类型的指针来对该地址解析就成了12.250000

可以这样说,浮点数的存储方式和整型数据存储形式完全不同呢!!

(二)浮点数的详细解读

(1)一个公式表示浮点数

国际标准IEEE(电气工程师学会)表示:任意一个浮点数的二进制形式X都可以用下面这个公式来表示。
X = (-1)^S * M * 2^E

  • X: 表示一个浮点数的二进制形式
  • (-1)^S: 确定符号位,当S == 0,表示该浮点数是正数;S == 1,表示该浮点数是负数
  • M: 表示有效数字(M范围[ 1, 2 ),需要通过左/右移动小数点来使整数部分处于该范围内 )
  • 2^E: 表示指数位

由于有些浮点数比较复杂,所以暂时使用四字节的12.25来作为栗子

在这里插入图片描述
因为:12.25 > 0, 所以:(-1)^S 中的S== 0
因为:1100.01 ,要想使M满足[1, 2),需要将小数点左移动3位M == 1.10001,所以E == 3
此时的X == (-1)^0 * 1.10001 * 2^3 等价于1100.01

那再试试-0.25这个呢
S == 1
二进制:-0. 01 可右移2位,使M == 1满足条件,E == -2
X == (-1)^ 1 * 1 * 2^(-2);

所以我们现在把12.25用这个公式表示出来了,但是但是,我们需要知道是如何存储在内存中的啊喂

(2)内存中的浮点数

在这里插入图片描述

看到这里想必,你已经知道了(一)中的*fp的结果为什么是12.25了吧,并且通过内存中存储(小端)的值,也是和我们推出来是一致的。

在这里插入图片描述

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-04 13:12:48  更:2021-12-04 13:13:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:55:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码