注册
登录
编程中国
搜索
标签
帮助
编程论坛
»
C语言论坛
» 计算机中浮点数的表示问题
搜索
学习型 ASP/PHP/ASP.NET 主机
30
元/年
全能
ASP/PHP/ASP.NET
主机,支持月付
专业
MSSQL
数据库空间,支持月付
专业
MySQL
数据库空间,支持月付
‹‹ 上一主题
|
下一主题 ››
发新话题
发布投票
发布商品
发布悬赏
发布活动
发布辩论
发布视频
打印
计算机中浮点数的表示问题
xunxunmimi
注册会员
帖子
57
精华
0
性别
男
注册时间
2006-12-12
个人空间
发短消息
加为好友
当前离线
1
#
大
中
小
发表于 2008-5-14 15:12
只看该作者
计算机中浮点数的表示问题
现给出以下三个问题,望高手解答。
1,浮点数在计算机中如何表示;
2,给出一个浮点数(float型):0X0376E979,能否写出它对应的十进制值;
3,给出五个浮点数(float型):-1, 1, 0, 1.5, -1.5,请写出其对应的十六进制码。
[
本帖最后由 xunxunmimi 于 2008-5-14 15:13 编辑
]
搜索更多相关主题的帖子:
计算机
点数
UID
113223
积分
627
阅读权限
20
在线时间
41 小时
最后登录
2008-7-25
查看详细资料
TOP
netsolo
注册会员
帖子
80
精华
0
注册时间
2008-3-6
个人空间
发短消息
加为好友
当前在线
2
#
大
中
小
发表于 2008-5-14 16:23
只看该作者
我只知道 0X0376E979 = 0.0
同一个浮点数在内存中可能有不同的表示方法,float数 0x0DA24260 同样也为 0.0
你可以看下IEEE754标准
这是关于浮点数的文章: http://blog.csdn.net/khler/archive/2007/08/17/1749102.aspx
http://www.pediy.com/bbshtml/bbs6/pediy6610.htm
这还有个浮点数转换的网页:http://www.h-schmidt.net/FloatApplet/IEEE754.html
[
本帖最后由 netsolo 于 2008-5-14 16:40 编辑
]
UID
234191
积分
880
阅读权限
20
在线时间
156 小时
最后登录
2008-7-26
查看详细资料
TOP
flyue
金牌会员
帖子
1497
精华
3
性别
男
注册时间
2006-6-20
个人空间
发短消息
加为好友
当前离线
3
#
大
中
小
发表于 2008-5-14 17:00
只看该作者
你用printf可以显示出来:
float a = (float)0X0376E979;
printf("%f", a);
大家一起来编程吧!
UID
77746
积分
16467
阅读权限
70
在线时间
196 小时
最后登录
2008-7-25
查看详细资料
TOP
xunxunmimi
注册会员
帖子
57
精华
0
性别
男
注册时间
2006-12-12
个人空间
发短消息
加为好友
当前离线
4
#
大
中
小
发表于 2008-5-15 11:06
只看该作者
谢谢!
第二个问题,我实际上是问:在内存中的存放形式为0X0376E979的浮点数所代表的数。如果将0X0376E979直接赋给一个float型的数,其在内存中的表示形式就不是0X0376E979了。昨天我误以为赋值后在内存中的形式就是0X0376E979,所以就那样提问了,今天才发现搞错了。
第三个问题,今天突然发现在VC编程环境中,将各个数分别赋值给float型变量,通过调试时的反汇编窗口可以看到各个数的十六进制表示。
第三个问题似乎解决了,第二个问题还需再查查资料。
UID
113223
积分
627
阅读权限
20
在线时间
41 小时
最后登录
2008-7-25
查看详细资料
TOP
StarWing83
金牌会员
帖子
1669
精华
1
性别
男
来自
湖北工业大学
注册时间
2007-11-16
个人空间
发短消息
加为好友
当前离线
5
#
大
中
小
发表于 2008-5-15 11:49
只看该作者
比如f是float变量,你这么写:
(int&)f=0X0376E979;
专心编程………
飞燕算法初级群:3996098
我的Blog
UID
218134
积分
18359
阅读权限
70
在线时间
376 小时
最后登录
2008-7-25
查看个人网站
查看详细资料
TOP
c_acceleration
注册会员
帖子
100
精华
0
注册时间
2008-4-28
个人空间
发短消息
加为好友
当前离线
6
#
大
中
小
发表于 2008-5-15 12:32
只看该作者
看信息编码
IEEE浮点标准:(-1)^s*M*2^E
(-1)^s符号位
M二进制小数
指数E是2的幂(可为负)
c语言:
因此划分三个域:(位)
单精度:符号位:1 指数域:8 小数域:23
双精度: 1 11 52
整数值:12345(0X3039) 单精度:12345.0(0x4640E400)
|0000|0000|0000|0000|0011|0000|0011|1001|
0|1000|1100|1 0000|0011|1001|0000000000
|| | |
1位 8位 23位
博客:道,可道,非常道
UID
247704
积分
1100
阅读权限
20
在线时间
66 小时
最后登录
2008-6-29
查看详细资料
TOP
‹‹ 上一主题
|
下一主题 ››
控制面板首页
编辑个人资料
积分记录
公众用户组