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查看内存 立即下载

相关推荐

2024最新超详细无痛安装PyTorch,包括下载地址、环境配置与各种避坑指南

PyTorch更新很快,2024最新下载安装经验贴,包括anaconda+CUDA+cuDNN+PyTorch四部分的下载和安装。文章详细介绍了下载地址、环境配置、虚拟环境建立的问题,还温馨提示了各种闭坑指南。有需要的友友快过来康康!

qq_43596278的博客 11万+

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

volkswageos的专栏 3329

应广单片机 按键点灯 PMS171B GPIO LED

我也是第一次使用这款单片机,参考网友的资料,写个最近简单的demo 测试用例 #include "extern.h" /*端口定义*/ BIT KEY : PA.0; BIT SW : PA.4; /*相应于main函数*/ void FPPA0 (void) { /*单片机内部RC震动时钟为 IHRC默认为16M,因此,IHRC/2=8M,系统时钟为8M*/ .ADJUST_IC...

大江的专栏 1000

C语言中float如何存储?

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

weixin_30852367的博客 613

YOLOv8环境搭建+训练自己的数据详细项目

直接按照路径会有问题,找到自己 requirements.txt 文件路径,我这里是pip install -r D:\ultralytics-main\ultralytics-main\requirements.txt。首先去自己的anaconda的安装的envs(虚拟环境),在导航栏输入cmd,进入命令窗口。到官方网站下载yolo模型 ,下载好后解压,里面有个文件requirements.txt。然后安装ultralytics ,这是必须的。

m0_63172128的博客 2万+

单节锂电池充电管理芯片应用原理阐述及应用领域

当电池电压超过2.9V时,采用恒流模式对电池充电,充电电流由PROG 管脚和GND之间的电阻RPROG确定。充电电压固定于4.2V,而充电电流可通过一个电阻器进行外部设置当充电电流在达到最终浮充电压之后降至设定值1/10时,WD4054将自动终止充电循环。在待机模式中,WD4054 对 BAT 引脚电压进行监控,只有当 BAT 引脚电压低于再充电阈值电压4.1V时(对应电池容量80%~90%),才会开始新的充电循环,重新对电池进行充电,这就避免了对电池进行不必要的反复充电,有效延长电池的使用寿命。

weixin_41141180的博客 943

备忘: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

Python爬虫:爬取拼多多平台商品信息、销量、价格等数据

在本篇博客中,我们将深入探讨如何使用Python爬虫技术爬取拼多多平台的商品信息,包括商品的标题、销量、价格等详细数据。拼多多的商品页面通常是分页展示的,因此我们需要遍历多个页面,获取所有商品的信息。每个商品在拼多多平台上都有一个唯一的商品ID,我们可以通过该ID访问商品页面。通过以上的技术方案和代码示例,你已经掌握了如何使用Python爬虫获取拼多多平台上的商品信息、销量、价格等数据。等技术,解决拼多多平台的反爬虫机制,成功抓取我们所需的商品数据。,我们能够应对拼多多的反爬虫机制,稳定地获取到商品数据。

2201_76125261的博客 3655

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

结构光之相移法+多频外差的数学原理推导

‍论文:基于数字光栅投影的结构光三维测量技术与系统研究 [博]作者:李中伟 华中科技大学 2007功能:相移法:多频外差(三频N步相移法)01 相移法图1 待写入投影仪的理想N步相移条纹通常对于 步相移来说,生成第 幅条纹图像(如图1所示)的公式如下:402 Payment Required其中::背景光强:调制强度:像素点横向坐标:相移值图2 相机拍摄到的实际 N ......

3D视觉工坊 1189

手把手教你学Simulink——机器人控制场景实例:基于Simulink的双足人形机器人步态生成与ZMP稳定控制仿真

ZMP是地面上合力矩在水平方向为零的点。对于平面行走: [ x_{\text{zmp}} = x_c - \frac{z_c}{g} \ddot{x}_c ]📌稳定性判据ZMP必须始终位于支撑脚的凸包(即脚掌范围内)本文完成了基于Simulink的双足人形机器人ZMP稳定控制仿真,实现了:✅ 基于LIPM生成稳定CoM轨迹✅ 构建ZMP参考与验证机制✅ 设计简化踝关节PD控制器✅ 验证ZMP始终位于支撑脚内 → 动态平衡✅ 为人形机器人步态规划奠定理论基础。

MHD0815的博客 139

关于(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

2026年1至9月武汉市房地产价格深度分析报告

本报告基于2026年1月至9月武汉市实际成交案例,从成交价格、区域分布、户型结构、价格走势等维度进行深度分析。数据来源包括武汉市住房保障和房屋管理局备案数据、主要中介机构成交记录及典型楼盘网签案例,覆盖全市15个行政区及主要功能板块。

王国平的博客 327

电子海图

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

lover_alison的专栏 1368

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

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

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

qijian111的专栏 3475

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

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

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

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、付费专栏及课程。

余额充值