简单进行16进制字串转浮点

   有时在内存读到一个浮点数,16进制滴,不知道如何转成10进制表示,找了写资料简单写了下

   有写处理的地方值的收藏下,会省很多事情滴

  CString str;
 float  fValue=0;
 CString oFloat;
 char buf[128] = {};//9A 99 99 3E 85 67 18 C2
 char *endStr;

 GetDlgItemTextA(IDC_EDIT_FLOAT,oFloat);


 oFloat.Replace(" ","");
 if(oFloat.GetLength ()==8)
 {
  long   lValue= strtol(oFloat,&endStr,16)  ;16进制字串转10进制整
  SetDlgItemText(IDC_STATIC,"单精度浮点");
  memcpy(&fValue,&lValue,sizeof(float));   最简单的转换方法,根本不需要写什么转换函数
 }
 else if(oFloat.GetLength ()==16)
 {  
  long long lValue= strtol(oFloat,&endStr,16);
  SetDlgItemText(IDC_STATIC,"双精度浮点");
  memcpy(&fValue,&lValue,sizeof(float));
 }

 str.Format("%2f",fValue);

 SetDlgItemText(IDC_EDIT_TEST,str); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值