16进制字符串转换到浮点,整型

xbt746 2008-03-25 07:01:08
请问下c++里如何实现将十六进制字符串转换到浮点整型
...全文
255 11 打赏 收藏 转发到动态 举报
写回复
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xbt746 2008-03-26
  • 打赏
  • 举报
回复
关键不是 a32.5那么简单,等下有时间得到的16进制给你看吧
ryfdizuo 2008-03-26
  • 打赏
  • 举报
回复
你傻啊,
不会将a32.5分割一下,整数位转化,小数位转化,
xbt746 2008-03-26
  • 打赏
  • 举报
回复
你说的都知道
strtod输入一个 a32.5就输出0,你说怎么用啊
ryfdizuo 2008-03-26
  • 打赏
  • 举报
回复
strtod结果是double
strtoul结果是unsigned long
strtol结果是long
ryfdizuo 2008-03-26
  • 打赏
  • 举报
回复
strtol
xbt746 2008-03-26
  • 打赏
  • 举报
回复
是浮点和整型
xbt746 2008-03-26
  • 打赏
  • 举报
回复
我得到的是16进制的字符串,strtod和atof不能处理
coding_hello写的只能处理将十六进制准换成整型
如何将十六进制的double转换出来列
xbt746 2008-03-26
  • 打赏
  • 举报
回复
"010200000003000000C02A871657E0D942001C5FF83396BA42809E2D9C55E0D94200306C7C3596BA42406DE37551E0D9420082D6F03596BA42"

按照这个结构定义的
WKBLineString {
byte byteOrder;
uint32 wkbType; // 2=wkbLineString
uint32 numPoints;
Point points[numPoints];
};
Point是两个double
Point {
double x;
double y;
};
后面字符串都是表示double类型,请问怎么转换
sun3411 2008-03-25
  • 打赏
  • 举报
回复
sscanf(str,"%x",&val);
Edward 2008-03-25
  • 打赏
  • 举报
回复
C运行库已有atof/strtod。

如果为了练习或者什么目的自己写,那么不如去看C运行库的source code。
野男孩 2008-03-25
  • 打赏
  • 举报
回复
浮点整数是啥数?


#include <iostream>
using namespace std;

unsigned long HexStrToInt(const char* str)
{
unsigned long dwRet = 0;
int len = strlen(str);
int i=0;
while(i<len)
{
char ch = str[i++];
if (ch >= 'a' && ch <= 'f')
{
dwRet = dwRet * 16 + ch-'a' + 10;
}
else if (ch >= 'A' && ch <= 'F')
{
dwRet = dwRet * 16 + ch - 'A' + 10;
}
else if (ch >= '0' && ch <= '9')
{
dwRet = dwRet * 16 + ch - '0';
}
else
{
break;
}
}

return dwRet;
}

int main()
{
char *p = "12aB";

cout << HexStrToInt(p) << endl;;

return 0;
}


输出:
4779
相关推荐

63,594

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下