| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2187 人关注过本帖
标题:【求助】请教下16进制与浮点互相转换怎么转换
只看楼主 加入收藏
天使不落泪
Rank: 1
等 级:新手上路
帖 子:104
专家分:0
注 册:2007-7-24
结帖率:0
收藏
 问题点数:0 回复次数:5 
【求助】请教下16进制与浮点互相转换怎么转换
请教下16进制与浮点互相转换怎么转换

谢谢
搜索更多相关主题的帖子: 进制 
2008-11-18 11:49
geninsf009
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:613
专家分:95
注 册:2008-8-16
收藏
得分:0 
分小数部分和整数部分进行转换,
具体的方法,可以采用递归或者非递归都行.
2008-11-18 13:18
天使不落泪
Rank: 1
等 级:新手上路
帖 子:104
专家分:0
注 册:2007-7-24
收藏
得分:0 
那请问下
0.75转换后表示为3F 40 00 00

还是 00 00 04 3F

这.................
2008-11-18 16:20
geninsf009
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:613
专家分:95
注 册:2008-8-16
收藏
得分:0 
十进制的0.75转换成十六进制不是0.CH吗?没有太明白你的表示方法.
我想你要解决的问题有这么几个:
(1)整数十转16:用除以16反向取余数,即可,递归堆栈都行;
(2)十六转十:按权展开求和就可以;
(3)小数的十转十六;
对于第三个问题,我写了如下的代码,注意:只针对小数的十进制转十六进制,刚写的,测试通过,你可以参考一下:
#include<iostream.h>

/////////////////////////////////////////////
//把十进制的纯小数转成是十六进制
//其中i是小数点后保留的位数(适用于无法精确表示的场合)
//采用乘以16取整的方法
/////////////////////////////////////////////
void Trans(double x,int p)
{
    int i=0;                  //控制保留的有效位数
    cout<<"0.";
    while(i<p)
    {
        if(x==0)              //如果小数部分是0
            break;            //则退出循环
        else
        {
            int k=int(x*16);  //取整数部分
            x=x*16-int(k);    //得到小数部分
            if(k<=9)
                cout<<k;
            else
                cout<<char(k+55);
        };
        i++;
    };
    cout<<"H"<<endl;
};
//////////////////////////////Trans()函数结束

/////////////////////////////////////////////
//main()函数
/////////////////////////////////////////////
int main()
{
    Trans(0.372,5);
    return 0;
};
///////////////////////////////main()函数结束
2008-11-18 18:29
天使不落泪
Rank: 1
等 级:新手上路
帖 子:104
专家分:0
注 册:2007-7-24
收藏
得分:0 
[bo][un]geninsf009[/un] 在 2008-11-18 18:29 的发言:[/bo]

十进制的0.75转换成十六进制不是0.CH吗?没有太明白你的表示方法.
我想你要解决的问题有这么几个:
(1)整数十转16:用除以16反向取余数,即可,递归堆栈都行;
(2)十六转十:按权展开求和就可以;
(3)小数的十转十六;
对 ...


先谢谢你的回答

我是想参照 IEEE754 协议进行转换
 十进制的0.75转换成十六进制不是0.CH吗?
这个 好像不对吧~~ 0.CH 是 16进制???

这.................
2008-11-20 16:59
geninsf009
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:613
专家分:95
注 册:2008-8-16
收藏
得分:0 
你可以验证一下啊,
0.CH=C*(16^-1)=12*(16^-1)=0.75D不是对的吗?
你指的后面那个H吗?
那是进制的后缀,H:十六进制 O:八进制 D:十进制 B:二进制
我不知道你说的 IEEE754 协议进行转换 具体的标准是什么,
我只是使用传统的格式,你可以把你要求的格式说得更详细些,
其实这本身就是个不难解决的问题.
2008-11-20 19:00
快速回复:【求助】请教下16进制与浮点互相转换怎么转换
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024176 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved