C语言浮点型的存储

news2024/11/25 16:49:31

3.14159 1e10可以写成1.0×10的10次方
1e5 表示 1.0×10的5次方

在这里插入图片描述

int main()
{
	int n = 9;//4byte
	float* pFloat = (float*)&n;//float 指针访问4的字节
	printf("n值为:%d", n);//9
	printf("*pFloat值为:%f\n", *pFloat);//,是以浮点数的视角去看的


	*pFloat = 9.0;
	printf("num的值位:%d\n", n);
	printf("*pFloat的值为:%f\n", *pFloat);
	return 0;//由上得出浮点数和整数在内存中存储是有所区别的




	return 0;
}

在这里插入图片描述

接下来探讨浮点数在内存中如何存储

在这里插入图片描述
s是0表示他是负数 s是1表示他是正数

5.5浮点数转换为二进制 101.1 后面是以的原因是后面是2的-1次方 等于2分之1
101.1转换为科学计数法 1.011*2^2
上面是二进制 如果是十进制向左移动两位是×10^2

1.011相当于可以理解为m

(-1)S*M*2E
(-1) ^ 01.0112^2

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
对于e是无符号整数的补充 float型 要加127 double型要加1023


在这里插入图片描述

float在内存中也是倒着存放的

指数e 怎么拿出来

分为三种情况

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

有了以上基础 再回看第一开始的那道题

int main()
{
	int n = 9;//4byte
	float* pFloat = (float*)&n;//float 指针访问4的字节
	printf("n值为:%d", n);//9
	printf("*pFloat值为:%f\n", *pFloat);


	*pFloat = 9.0;
	printf("num的值位:%d\n", n);
	printf("*pFloat的值为:%f\n", *pFloat);
	return 0;




	return 0;
}
int main()
{
	int n = 9;//4byte
	//00000000000000000000000000001001   9的二进制序列


	float* pFloat = (float*)&n;//float 指针访问4的字节
	printf("n值为:%d", n);//9
	printf("*pFloat值为:%f\n", *pFloat);//整形形式放进去 浮点数形式拿出来.%f打印  纸打印小数点后6位
	//0   00000000  00000000000000000001001  e为全0的情况 m位还原为0.xxx数字0.00000000000000000001001*2^-126  全0的时候e直接补0
   // s      e         m


	*pFloat = 9.0;
	
	printf("num的值位:%d\n", n);
	//以浮点数形式放进 所以要用到科学计数法
	//1001.0
	//1.001*2^3  小数点向左移动三位
	//E为3   需要加127
	//0 10000010 00100000000000000000000  


	//整数在内存中存的是二进制 补码   %d打印认为是有符号数  符号位0原反补相同  所以直接打印这个二进制序列


	
	printf("*pFloat的值为:%f\n", *pFloat);

	return 0;




	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/100920.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习基础知识---梯度弥散 梯度爆炸

目录 1 梯度弥散、梯度爆炸的成因 2 解决方式 2.1.pretrainfinetune 2.2 梯度裁剪 2.3 权重正则化 2.5 Batch Normalization正则化 2.6 残差结构 shortcut 2.7 LSTM 1 梯度弥散、梯度爆炸的成因 神经网络的层(主要是隐藏层)越多,对…

【LSTM时序预测】基于matlab EMD结合LSTM风速数据预测【含Matlab源码 2051期】

⛄一、EMD-DELM简介 1 方法及原理 1.1 EMD基本原理 经验模态分解可基于数据本身,将复杂信号分解为一系列IMF和一个r(t),分解信号时,不需要预先设置任何基函数。因为这一特点,理论上EMD方法可预处理任何一种信号的数据,因此被广泛…

【Linux磁盘管理】

Linux磁盘管理 写在前面 在此强调一个 Linux 的核心机制就是一切皆文件。 I/O Ports 即I/O 设备地址,用来标识硬件对应的设备地址,来让操作系统以及 cpu 使用。 CPU 的核数不一定就是越多越好,由于CPU 协调之间的协调问题,可能性…

洛谷P1161 开灯

开灯 题目描述 在一条无限长的路上,有一排无限长的路灯,编号为 1,2,3,4,…1,2,3,4,\dots1,2,3,4,…。 每一盏灯只有两种可能的状态,开或者关。如果按一下某一盏灯的开关,那么这盏灯的状态将发生改变。如果原来是开,…

定时器/计数器中定时/计数初值的计算

寄存器TMOD是单片机的一个特殊功能寄存器,其功能是控制定时器/计数器T0、T1的工作方式。它的字节地址为89H,不可以对它进行位操作。 只能进行字节操作,即给寄存器整体赋值的方法设置初始值,如TMOD0x01。在上电和复位时&#xff0c…

中小型企业HR人力资源管理系统源码带使用手册和操作说明

【程序语言】:.NET 【数据库】:SQL SERVER 2008 【运行环境】:WINDOWSIIS 【其他】:前端bootstrap框架 运行环境 系统运行环境:ASP.NET 4.0/IIS 6.0/SQL Server2008,使用成熟稳定的Webform开发模式&…

【现代密码学原理】——期末复习(冲刺篇)

📖 前言:快考试了,做篇期末总结,都是重点与必考点。 博主预测考点: 计算题:RSA、Diffie-Hellman密钥交换、EIGamal 密钥交换、使用SHA-512算法,计算消息的Hash值、计算消息的HMAC 应用题&#…

1.cesium简介和环境搭建

目录 一、cesium介绍 cesium是什么? cesium能做什么? cesium的限制? cesium的好处是什么? 二、创建一个简单的cesium 安装node环境 下载cesiumSDK 部署cesium 三、补充说明 Documentation Sandcastle 一、cesium介绍 …

重点| 系统集成项目管理工程师考前50个知识点(7)

本文章总结了系统集成项目管理工程师考试背记50个知识点!!! 帮助大家更好的复习,希望能对大家有所帮助 比较长,放了部分,需要可私信!! 46、项目合同签订的注意事项: …

Hadoop实训1:Linux基本搭建和操作

目录 1、创建三台虚拟机 2、创建使用SSH远程连接 3、实现IP地址与主机名的映射 4、关闭和禁用防火墙 5、创建目录结构 6、压缩打包 7、安装软件包 安装jdk 安装mysql 8、创建脚本文件 9、运行脚本文件 11、远程拷贝文件 总结 1、创建三台虚拟机 序号虚拟机名称…

22.12.19打卡 Codeforces Round #839 (Div. 3) A~E

Dashboard - Codeforces Round #839 (Div. 3) - Codeforces 浑浑噩噩的一场, 被队友带飞 A 不解释 /* ⣿⣿⣿⣿⣿⣿⡷⣯⢿⣿⣷⣻⢯⣿⡽⣻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠸⣿⣿⣆⠹⣿⣿⢾⣟⣯⣿⣿⣿⣿⣿⣿⣽⣻⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣻⣽⡿⣿⣎⠙⣿⣞⣷⡌⢻…

Python -- 文件操作

目录 1.文件的打开与关闭 1.1 打开文件 1.2 关闭文件 2.文件的读取和写入 2.1 文件的读写 3.CSV文件的读写 3.1 CSV文件的写入 4.将数据写入 4.1 StingIO 4.2 BytesIO 5.练习:实现文件拷贝 6.序列化和反序列化 6.1 使用JSON实现列化 6.2 使用JSON实现…

Spring Boot的单元测试

⭐️前言⭐️ 一个Spring项目是有很多个功能的,如果想要单独测试某一个功能是否逻辑正确,就不能只依靠启动类来将整个项目启动去进行测试,而是要通过单元测试的方法,来单独的测试某一个功能,这篇文章就来介绍单元测试…

MEC硬件加速技术分析

【摘 要】为了解决边缘机房的供电、散热以及承重能力有限,无法为MEC提供足够的计算资源的问题,分析了MEC在第三方应用,OVS和虚拟化用户面的性能瓶颈,提供硬件加速的方法。研究表明,通过上述方法,可突破MEC的性能和时延瓶颈,实现高性能、低时延,并兼顾性能、成本和开放…

稳踞三大价值高地!昆仑万维角逐AIGC“新大陆”

历史总是被前瞻者和实干家推动着加速前行。 15世纪,多艘探险船队从欧洲出发向着东方而去,开启群雄角逐的探索时代。他们在航行中不断发现新大陆,兴起无数的造富神话,也加速了全球贸易、信息等方面的交流,翻开一个全新…

Hadoop学习笔记——MapReduce

文章目录一、MapReduce概述1.1、MapReduce定义1.2、MapReduce优缺点1.2.1 优点1.2.2 缺点1.3、MapReduce核心思想1.4、MapReduce进程1.5、官方WordCount源码1.6、常用数据序列化类型1.7、MapReduce程序规范1.8、 WordCount案例实操1.8.1 本地测试1.8.2 提交到集群测试一、MapRe…

XiaoMi手机MIX 2S线刷固件和刷入Recovery、Root

mix 2s 固件下载地址 https://web.vip.miui.com/page/info/mio/mio/detail?postId4865868&app_versiondev.20051 miflash线刷工具下载地址 https://miuiver.com/miflash/ 安装miflash线刷工具 点击安装驱动 打开miflash 手机关机按音量下加开机键进入bootloader&#xf…

(Java)[NOIP2006 普及组] 明明的随机数

[NOIP2006 普及组] 明明的随机数一、题目描述二、输入格式三、输出格式四、样例输入五、样例输出六、正确代码(1)方法一(2)方法二(3)方法三七、思路与分析(1)题目分析(2&…

mysql基于Amoeba(变形虫)实现读写分离

一,Amoeba介绍 1、什么是amoeba? ​ Amoeba(变形虫)项目,专注 分布式数据库 proxy 开发。座落与Client、DB Server(s)之间。对客户端透明。具有负载均衡、高可用性、sql过滤、读写分离、可路由相关的query到目标数据库、可并发请求多台数据…

【数据结构】顺序表与线性表之ArrayList

目录 一、顺序表与线性表的概念 1、顺序表 2、线性表 二、Java里的集合类之ArrayList 1、ArrayList与顺序表 2、认识ArrayList 1.构造方法 2.常用方法 3.遍历ArrayList的几个方法 4.扩容机制 三、模拟实现ArrayList 1、字段 2、构造方法 3、常用方法 1.判满 2.判…