16位double转换为16进制

miaoshengwu 2009-04-02 01:42:43

如何将double dd=81627781917573120.000000;
转换为16进制的CString source="0122000901000000";
急用!
谢谢!
...全文
791 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
miaoshengwu 2009-04-03
  • 打赏
  • 举报
回复
double dd=82753683737018368.0000;
ULONGLONG ull = (ULONGLONG&)dd;
ull &= 0x1fffffffffffff;
CString source;
source.Format(_T("%I64x"), ull);
这样就可以了,
楼上的真是牛人,
准备把这些发到博客上去,大家有空去光顾一下,
路人乙2019 2009-04-03
  • 打赏
  • 举报
回复
不明白你那两个值有何关系.怎样得出来的.
jyh_baoding 2009-04-03
  • 打赏
  • 举报
回复
把DOUBLE的内存8个字节逐个取出,用16进制表示,在写入CSTRING,
cnzdgs 2009-04-03
  • 打赏
  • 举报
回复
晕,又少了一个f,还少了个分号:
double dd=81627781917573120.000000;
ULONGLONG ull = (ULONGLONG&)dd;
ull &= 0xfffffffffffff;
CString source;
source.Format(_T("01%I64x"), ull);
// 由于不知道01的含义,这里直接在前面加了01,后面是有效数字
cnzdgs 2009-04-03
  • 打赏
  • 举报
回复
漏掉了一行代码:
double dd=81627781917573120.000000;
ULONGLONG ull = (ULONGLONG&)dd;
ull &= 0xffffffffffff;
CString source;
source.Format(_T("01%I64x"), ull)
// 由于不知道01的含义,这里直接在前面加了01,后面是有效数字
cnzdgs 2009-04-03
  • 打赏
  • 举报
回复
22000901000000是81627781917573120.000000的有效数字,01怎么解释?
double dd=81627781917573120.000000;
ULONGLONG ull = (ULONGLONG&)dd;
CString source;
source.Format(_T("01%I64x"), ull)
// 由于不知道01的含义,这里直接在前面加了01,后面是有效数字
schlafenhamster 2009-04-02
  • 打赏
  • 举报
回复
double dd=81627781917573120.0 ;
char str[20];
_i64toa(__int64(dd),str,16);
miaoshengwu 2009-04-02
  • 打赏
  • 举报
回复
现在要用代码实现,不知道如何做,
miaoshengwu 2009-04-02
  • 打赏
  • 举报
回复
http://www.knowsky.com/tools/ToolJinzhi.asp
在这个网上转换一下就很清楚了,
量子 2009-04-02
  • 打赏
  • 举报
回复
好像没什么对应关系呀
double dd=81627781917573120.000000;
对应内存数据为
00 00 10 90 00 20 72 43
而你的字符串中内容 CString source="0122000901000000";
的第4-15为对应为内存数据第5==>0字节的逆序排列,至于其他4位012,0和72 43的对应就不清楚了
miaoshengwu 2009-04-02
  • 打赏
  • 举报
回复
后面的零可以不要,
莫情莫钱 2009-04-02
  • 打赏
  • 举报
回复
小数点后面的零也要保留??
我是苦力 2009-04-02
  • 打赏
  • 举报
回复
楼上好像题目还没有看清就回答了。
根本就对不上号。呵呵,这分赚急了吧

mark
caohongtai 2009-04-02
  • 打赏
  • 举报
回复
//double-->字符串

输入参数:
//double: &f 输入的double类型数据
//dotNum:转换成的字符串保留几位小数
返回值:CString类顶的字符串
CString double2Str(double &f,int dotNum)
{
CString str;
if(dotNum<0)
{
str.Format("%f",f);
}
else
{
CString temp;
temp.Format("%s%.df","%.",dotNum);
str.Format(temp,f);
}
return str;
}

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧