浮点数在内存中的储存规则

根据国际标准IEEE754,任意一个二进制浮点数V可以表示下面的形式:

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

  (-1)^S表示符号位,当S=0,V为正数;当S=1,V为负数。

  M表示有效数字,大于等于1,小于2。

  2^E表示指数位。


#include<stdio.h>

int main()
{
  int n =6;
  float*pfloat=(float*)&n;
  printf("n的值:%d",n);
  printf("*pfloat的值:%f",*pfloat);
  
  *pfloat=6.0;
  printf("num的值%:d",num);
  printf("*pfloat的值:%f",*pfloat);
  return 0;
}

 在运行代码之前可以大胆猜测下,第一个打印的数值肯定为6,按照我们整型在内存中储存的经   验,第二个打印的数值为9.0,第三个值为6,第四个值为6.0。

 这里第二个和第三的数值和我们猜想的有很大的差异,说明浮点数在内存中的存储和整型是完全不相同的。


在正式讲解之前我们先了解一下小数的二进制位表示

注释:有的小数是无法正正好好用二进制表示的

例如 6.8储存到内存中就是6.90000019

 


 

 例 5.5在内存中的储存

1.首先因为5.5是正数所以符号位S=0

2.IEEE规定M在内存中的存储需要把第一位去掉

1.011就储存011,这样做的目的是为了节省一位有效数字

3. 首先E的类型是一个无符号整数,64位的E是11个比特位,取值范围是0~2047,但是在科学计数法中E是可以表示负数 的,所以在内存存放E的真实值必须加上一个中间数127,例如2在内存中存储就是2+127=129 10000001

内容概要:本文详细介绍了基于FPGA的144输出通道可切换电压源系统的设计与实现,涵盖系统总体架构、FPGA硬件设计、上位机软件设计以及系统集成方案。系统由上位机控制软件(PC端)、FPGA控制核心和高压输出模块(144通道)三部分组成。FPGA硬件设计部分详细描述了Verilog代码实现,包括PWM生成模块、UART通信模块和温度监控模块。硬件设计说明中提及了FPGA选型、PWM生成方式、通信接口、高压输出模块和保护电路的设计要点。上位机软件采用Python编写,实现了设备连接、命令发送、序列控制等功能,并提供了一个图形用户界面(GUI)用于方便的操作和配置。 适合人群:具备一定硬件设计和编程基础的电子工程师、FPGA开发者及科研人员。 使用场景及目标:①适用于需要精确控制多通道电压输出的实验环境或工业应用场景;②帮助用户理解和掌握FPGA在复杂控制系统中的应用,包括PWM控制、UART通信及多通道信号处理;③为研究人员提供一个可扩展的平台,用于测试和验证不同的电压源控制算法和策略。 阅读建议:由于涉及硬件和软件两方面的内容,建议读者先熟悉FPGA基础知识和Verilog语言,同时具备一定的Python编程经验。在阅读过程中,应结合硬件电路图和代码注释,逐步理解系统的各个组成部分及其相互关系。此外,实际动手搭建和调试该系统将有助于加深对整个设计的理解。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值