社区
C语言
帖子详情
一个关于浮点数的存储问题.
th362cn
2005-03-18 03:05:07
我最近学习c语言.书上说浮点数在内存中的顺序是:
符号位 隐藏的小数点 小数 指数
这样的排列顺序.想请教各位高手.
就TC2.0而言,float型和double型的"小数位"和"指数位"各是多少位二进制?
为何float型浮点数有效数字只有7位?
...全文
138
4
打赏
收藏
一个关于浮点数的存储问题.
我最近学习c语言.书上说浮点数在内存中的顺序是: 符号位 隐藏的小数点 小数 指数 这样的排列顺序.想请教各位高手. 就TC2.0而言,float型和double型的"小数位"和"指数位"各是多少位二进制? 为何float型浮点数有效数字只有7位?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
th362cn
2005-03-18
打赏
举报
回复
谢谢了.
寻开心
2005-03-18
打赏
举报
回复
关于32位浮点数的结构,你可以看我的btlog当中的描述部分
http://btlog.csdn.net/happy_888
根据IEEE的标准,浮点数的定义如下
符号位 指数位 小数部分 指数偏移量
单精度浮点数 1 位[31] 8位 [30-23] 23位 [22-00] 127
双精度浮点数 1 位[63] 11 位[62-52] 52 位[51-00] 1023
我们以单精度浮点数来说明:
符号位,表述浮点数的正或者负
指数实际也有正负的,但是没有单独的符号位,而是采用了一个偏移来表示
在计算机的世界里,进位都是二进制的,指数表示的也是2的N次幂
这个数据格式当中的,指数是8位,可表达的范围是0到255
而对应的实际的指数是-127到+128
这里特殊说明,-127和+128这两个数据在IEEE当中是保留的用作多种用途的
-127表示的数字是0
128和其他位数组合表示多种意义,最典型的就是NAN状态
小数部分,并不是一个浮点数的实际的小数
实际的小数在这个小数前面还保留了一个1
拿浮点数1.0来说
符号位是0, 实际指数是0,对应这里的指数就是127了,也就是0x7f
而小数部分就是1.0了, 1是暗含的不存储,实际的小数部分就是0了
因此组合起来的数据就是,0x3f80000
16位的也是类似的,自己分析一下
WORD w = *((WORD*)(&f))
是把一个浮点数按照内存结构转化成为一个unsigned int 16位的结构
TC 2.0不是C++ ,是c++的话就可以简单 w = (int&) f; 就可以了
th362cn
2005-03-18
打赏
举报
回复
我没领会你的意思.WORD 和DWORD 引导的是何物?如何使用?
寻开心
2005-03-18
打赏
举报
回复
无论在什么系统上,对于一个数据类型来说,使用c语言的sizeof函数都可以知道它的大小是2个字节还是4个字节
对于16位的系统,tc2.0来说, float 是16位, double是32位的
根据ieee的浮点数标准是可以精确的知道组成float或者double的各个位的情况的
无论你是出于什么目的来研究这个结构,都可以用下面的方法获得它的各个位的状况
float f;
double d;
WORD w = * ((WORD * )( &f))
DWORD dw = * ((DWORD * )( &f))
关于
浮点数
的精度
问题
浮点数
的精度
问题
是
一个
普遍的
问题
,不仅仅是 C 语言的
问题
,也是其他编程语言的
问题
。了解
浮点数
的精度
问题
可以帮助我们更好地理解
浮点数
,并且能够更好地解决
浮点数
的精度
问题
。 最后,
浮点数
的精度
问题
是
一个
...
c语言-
浮点数
存储
所带来的
问题
.cpp
c语言-
浮点数
存储
所带来的
问题
.cpp
浅析C语言中的
浮点数
.pdf
"浅析C语言中的
浮点数
.pdf" ...
浮点数
是C语言中的
一个
重要数据类型,但
浮点数
的使用需要注意
存储
误差和溢出
问题
。通过了解
浮点数
的
存储
格式和
存储
误差,可以更好地使用
浮点数
和避免
浮点数
的溢出
问题
。
浮点数
转换工具(十六进制转
浮点数
)
这个工具不仅方便了专业人士的工作,也为学习者提供了
一个
直观的实践平台,有助于深化对
浮点数
和二进制计算的理解。通过使用这类工具,我们可以更深入地了解数字背后的二进制逻辑,提升在数字计算和编程领域的技能。
双精度
浮点数
转换
3. 与十六进制转换:
浮点数
可以很方便地转换为十六进制,因为每4位二进制可以精确地对应
一个
十六进制数字。对于双精度
浮点数
,其64位二进制表示可以转换为16位十六进制字符串。这在编程和调试中非常有用,因为它提供...
C语言
70,026
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章