VC下float存储

ADO方式,VC调用Execute执行INSERT INTO插入变量SQL语句的写法 有些情况下,SQL SERVER 2008r2中需要保存float,int类型的数据,当C++中的变量为double类型时,先格式化为Cstring格式,再组合成SQL语句。 对应的C++ 插入语句写法如下: m_pConnection->Execute(_bstr_t("INSERT INTO Gps(GPSTIME,S1XZWZ,S1X,S1Y,S1HZJD,S1DW,S1FX)\ 阅读详情

一直以为vc下float存储是跟C下是相同的,但是一次偶然的机会,突然查看float的地址空间的时候,2的对应地址中的内容竟然是:

00

00

00

40

计算了一下,根本就不是那么回事儿。

 

网上找了下,才知道:

浮点型变量在计算机内存中占用4字节(Byte),即32-bit。遵循IEEE-754格式标准。
一个浮点数由2部分组成:底数m 和 指数e。
                          ±mantissa × 2exponent
(注意,公式中的mantissa 和 exponent使用二进制表示)
底数部分 使用2进制数来表示此浮点数的实际值。
指数部分 占用8-bit的二进制数,可表示数值范围为0-255。 但是指数应可正可负,所以IEEE规定,此处算出的次方须减去127才是真正的指数。所以float的指数可从 -126到128.
底数部分实际是占用24-bit的一个值,由于其最高位始终为 1 ,所以最高位省去不存储,在存储中只有23-bit。
到目前为止, 底数部分 23位 加上指数部分 8位 使用了31位。那么前面说过,float是占用4个字节即32-bit,那么还有一位是干嘛用的呢?   还有一位,其实就是4字节中的最高位,用来指示浮点数的正负,当最高位是1时,为负数,最高位是0时,为正数。
   浮点数据就是按下表的格式存储在4个字节中:
      Address+0     Address+1     Address+2     Address+3
Contents     SEEE EEEE     EMMM MMMM     MMMM MMMM     MMMM MMMM
      S: 表示浮点数正负,1为负数,0为正数
      E: 指数加上127后的值的二进制数
      M: 24-bit的底数(只存储23-bit)
主意:这里有个特例,浮点数 为0时,指数和底数都为0,但此前的公式不成立。因为2的0次方为1,所以,0是个特例。当然,这个特例也不用认为去干扰,编译器会自动去识别。

 

也算是自己标记了一下。。。

 

附加一点:

printf的%f格式说明符不是用于float的,是用于double的!!printf是没有float的格式说明符的,在可变参数中填入的float,在入栈前都会被提升为double。而%lf中的l被忽略,行为与%f一样。

printf的这些行为跟scanf是不同的,scanf中的%f才是用于float的,%lf用于double。这是两者的区别。

c语言 float double数据类型的内存中的存储和验证 c语言中的float , double 等数据类型的存储,如何计算 , 如何用vc vs查看内存 立即下载

相关推荐

基于LSTM语义分析的企业风险预测系统

在数字化时代,企业面临着前所未有的挑战和机遇,而风险管理作为确保企业稳定发展的关键一环,其重要性日益凸显。为了及时、准确地监测和分析企业相关的风险,并预测可能带来的风险,本文介绍了一种基于长短期记忆(LSTM)语义分析的企业风险预测系统。该系统利用深度学习技术,通过将收集到的企业数据进行预处理和分析,结合LSTM模型对文本进行深度语义分析,从而实现对潜在风险的预测和评估。系统设计方面,该系统包括数据预处理、LSTM模型构建与训练、风险预测以及可视化展示等模块。

qiufangtaowvnyyidtf的博客 1392

在VC中如何将float型转换成字符数组

volkswageos的专栏 3329

【UE5】多用户协同编辑实战:从配置到实时协作

本文详细介绍了在虚幻引擎5中配置和使用多用户协同编辑功能的完整流程。从启用Multi-User Editing插件、配置UDP Messaging网络通信,到启动服务器、创建会话并实现实时协作,提供了从环境准备到实战协作的清晰指南。文章还分享了资产同步、场景分批、对象锁定等实用技巧,并强调了网络配置与版本一致性等关键避坑点,旨在帮助中小型团队提升关卡设计和原型开发的协作效率。

weixin_29001683的博客 267

C语言中float如何存储?

float 内存如何存储的 类型 存储位数 总位数 偏移值 (offset) 数符(S) 阶码(E) 尾数(M) 短实数(float) 1 ...

weixin_30852367的博客 613

海康威视工业相机SDK二次开发实战:多相机同步采集与图像存储

本文详细介绍了海康威视工业相机SDK二次开发实战,包括多相机同步采集与图像存储的优化方案。通过MVS软件搭建开发环境,实现硬件与软件触发同步采集,并提供高效的图像存储管理技巧,帮助开发者提升工业视觉项目的效率与稳定性。

weixin_29168813的博客 666

【软件分享】天若OCR文字识别V4.48(翻译功能免费)

软件简介 吾爱破解论坛大佬天若幽心开发的一款OCR文字识别工具。支持快速截图识别,以及文本翻译。 下载地址 蓝奏云盘:点击下载 百度网盘:点击下载(密码:4dm4) 坚果云盘:点击下载 天翼云盘:点击下载 微软云盘:点击下载 使用教程 1、下载后对压缩包进行解压 2、双击天若OCR文字识别.exe 3、发现桌面右下角出现软件图标 4、双击软件图标即可开始截图识别 原帖地址 https://www.52pojie.cn/thread-692917-1-1.html ...

XavierJ的博客 1万+

备忘:C++各数据类型取值范围(备忘)--32位操作系统

<br />各数据类型取值范围<br /> <br /> <br /> <br />bool型为布尔型,占1个字节,取值0或1。<br /> <br />BOOL型为int型,一般认为占4个字节,取值TRUE/FALSE/ERROR。<br />sbyte型为有符号8位整数,占1个字节,取值范围在128~127之间。 <br />bytet型为无符号16位整数,占2个字节,取值范围在0~255之间。<br />short型为有符号16位整数,占2个字节,取值范围在-32,768~32,767之间。<br /

jingjing_123的专栏 3500

详细介绍用MATLAB实现基于A*算法的路径规划(附完整的代码,代码逐行进行解释)(一)--------A*算法简介和环境的创建

   本系列文章主要介绍基于A*算法的路径规划的实现,并使用MATLAB进行仿真演示。    一、 A*算法简介       A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快。      公式表示为: f(n)=g(n)+h(n),其中, f(n) 是从初始状态经由状态n到目标状态的代价估计,g(n) 是在状态空间中从初始状态到状态n的实际代价,h(n) 是从状态n到目标状态的最佳路径的估计代价。

慕羽★的博客 7万+

VC6.0中float(单精度)在内存中的存储格式

Copy  From  http://hi.baidu.com/chumingyu/blog/item/ff7b583829604d3c96ddd8b6.html 浮点型变量在计算机内存中占用4字节(Byte),即32-bit。遵循IEEE-754格式标准。 一个浮点数由2部分组成:底数m 和 指数e。                           ±mantissa × 2exp

菜鸟的逆袭 4222

杰理接入第三方升级协议OTA教程

本教程介绍了使用dual_bank_updata_api.h接口接入第三方协议进行固件升级的方法。主要内容包括:INI配置要求(需启用双备份并强制4K对齐)、7个核心API接口功能说明及参数详解(初始化、空间检查、数据写入、校验等)、标准升级流程步骤(初始化→检查→写入→校验→引导→清理)。特别强调了4K对齐配置的重要性以避免数据丢失,并提供了被动升级流程图。该方案支持用户自定义协议接入,需严格按照流程调用接口完成升级。

qq_42014563的博客 1429

PX4从放弃到精通(二十二):日志

文章目录前言一、下载日志二、ulog转CSV三、利用flightplot软件分析PX4的ulog日志1 windos安装2 ubuntu18.04安装四、使用PlotJuggler分析PX4日志五、设置日志记录条件六、添加自定义日志消息 前言 PX4 1.10以上固件 QGC 一、下载日志 将飞控链接地面站,在下图页面点击“刷新”,即可看到保存的日志(前提是要有TF卡) 选择需要下载的日志,点击右侧的“下载”,然后选择目录即可进行下载,如果想擦除所有的日志,可以点击右侧的“擦除全部” 二、ulog转CS

超维空间科技的博客 6793

关于(int)&a 以及VC下float存储

float a = 1.0f; cout << (int)a << endl; cout << &a << endl cout << (int&)a << endl; cout << (int)&a << endl; cout << boolalpha << ((int)a == (int&)a) << endl; float b = 0.0f; cout << (int)b <<

木易同学的专栏 678

Vue3 + uniapp 踩坑:iOS 真机调试一直报错Maximum call stack size exceeded,和(in promise)MiniProgramError err的解决方法

不是你写错代码,是微信开发工具和 iOS 真机调试的兼容问题。开个空项目都报错,勾个设置就没问题,不是你,是工具的锅。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1267

电子海图

现在面临的一个问题就是 无法用vc读取matlab文件的数据  matlab中生成的文件int 类型是4个字节和放在内存里的形式是一样的 而vc产生的文件把int 或者float类型都转化成了字符串的形式 就像4.0 存储成34 2e 30 30 30  ascii值是4.000 (以上是用ue32得出的结果)  两种读写方式的不同 使得我无法正确读取matlab生成文件的float类型数据 

lover_alison的专栏 1368

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

C语言浮点数存储-VC6.0和CCS环境

C语言中浮点数存储方式与整形数存储方式不同,因此本文将解释一个问题:1、浮点数存储。 1、浮点数存储 整形数据存储按照进制转换(十进制转换为二进制)存储,并结合用原码、反码和补码的形式表示有符号数。C语言使用补码的形式表示有符号数,例如10与-10,在C语言中存储形式分别为0x0000000a,0xfffffff6。其中细节与本文无关,不进行讨论。 浮点数存储则不一样,其结合科学计数法进行存

qijian111的专栏 3475

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

double float 类型在内存中的存储形式

浮点数分为 单精度和双精度,在内存中都分为三部分; ①符号位; ②指数位; ③尾数位; Float类型内存形式: 图1 float类型在内存中的形式 double类型内存形式: 图2 double类型在内存中的形式 根据浮点数的存储标准(IEEE制定 https://en.wikipedia.org/wiki/IEEE_754-1985 ), float类型指数的起始数为127(二进制0111 1111),即指数为0111 1111时代表科学计数法的指数位为0; double类型指数的起始数为1023(

XIAOYOULUN 4307

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

C语言中float如何存储?(转载)

float内存如何存储的 类型 存储位数 总位数 偏移值(offset) 数符(S) 阶码(E) 尾数(M) 短实数(float) 1 8 23 ...

weixin_30405421的博客 669

浮点数的存储(IEEE754)

VS2008 MSDN 中有 浮点数格式的详细介绍,本文只是一个总结性的东西,欲 详细研究请参考 (1)MSDN中输入:IEEE,找到浮点数相关部分 (2)可以参考网上一些文章          http://www.cnblogs.com/jillzhang/archive/2007/06/24/793901.html          http://blog.youkuaiyun.com/gan

秦黎明的博客 1219

struct 字节对齐详解

现在已知32位机器上各种数据类型的长度如下: char:1(有符号无符号同)     short:2(有符号无符号同)     int:4(有符号无符号同)     long:4(有符号无符号同)     float:4   double:8   先让我们看几个例

1497

float类型数据在内存中的存储

关于float类型数据在内存中的存储,netHibernate的博客已经解释的非常明白了,下面是连接: http://blog.youkuaiyun.com/nethibernate/article/details/6120382

MrShiAdam的博客 568

你会用sizeof吗?(vc篇)

本文主要包括二个部分,第一部分重点介绍在VC中,怎么样采用sizeof来求结构的大小,以及容易出现的问题,并给出解决问题的方法,第二部分总结出VC中sizeof的主要用法。 1、 sizeof应用在结构上的情况 请看下面的结构: struct MyStruct { double dda1; char dda; int type };

0011411的专栏 832

XYZRGB型PCD文件中rgb字段的加包与拆包

 #include&lt;iostream&gt; using namespace std; void main() { //--------------PCD文件RGB字段的拆包和加包------------ //加包(已知RGB,求float) int r=109,g=114,b=134; int rgb = ((int)r &lt;&lt; 16 | (int)...

yx223322的博客 1037

C/C++中float和double的存储结构(转)

在C/C++中float是32位的,double是64位的,两者在内存中的存储方式和能够表示的精度均不同,目前C/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算。 无论是float还是double,在内存中的存储主要分成三部分,分别是: (1)符号位(Sign):0代表正数,1代表负数 (2)指数位(Exponent):用于存储科学计数法中的指数部分,并且采用移...

weixin_33786077的博客 1464

C里面float double在内存的存储方式

int型大小随系统变化char型和short固定为一个字节和两个字节,即在内存中存储方式为一个字节八位对应存储而float的大小为32位,占四个字节,并不按照一一对应的方式存储,其32位的由三部分构成,依次是符号位1  指数位8  数据部分23构成符号位用于表示正负指数位对应float数据类型的指数部分数据部分则是float数据类型底数部分指数部分为了方便比较,采用偏移码的方式使值存储为正数例如 ...

???? 829
上一篇: 在外部结束线程
下一篇: [转]在VC中彻底玩转Excel
lbjfeng
博客等级 码龄19年 38粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值