社区
Java SE
帖子详情
16进制字符串转换为float值
pxboy
2007-09-02 12:24:34
有一个16进制字符串,请问如何转换为float类型的值?
如有:43B48000 41180000 48A74680 三个字符串
...全文
770
5
打赏
收藏
16进制字符串转换为float值
有一个16进制字符串,请问如何转换为float类型的值? 如有:43B48000 41180000 48A74680 三个字符串
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Yofoo
2007-09-02
打赏
举报
回复
DWORD a = ::strtoul(str,0,16);
float b = (float)a;
bit1010
2007-09-02
打赏
举报
回复
上面的两个解法都没有考虑小数部分:
public static Float parseFloatHex(String hexString) {
// 如果解析出错,则抛出异常
String[] slit = hexString.split("[.]");
float f = 0;
if (slit.length > 2) {
throw new IllegalArgumentException("");
}
if (slit[0].length() > 0) { //如果含有整数部分
f += Integer.parseInt(slit[0], 16);
}
if(slit.length == 2) {
int div = 1;
for (int i = 0; i < slit[1].length(); i++) {
div *= 16;
}
f += Integer.parseInt(slit[1], 16) * 1.0 / div;
}
return f;
}
pxboy
2007-09-02
打赏
举报
回复
zephyr_cc的正解,
其他的可能都没明白怎么回事,这是一个float的16进制存储的问题
zephyr_cc
2007-09-02
打赏
举报
回复
搞定了~
public static void toFloat(String s) {
int intBits = Integer.parseInt(s, 16);
float f = Float.intBitsToFloat(intBits);
System.out.println(f);
}
double的:
public static void toDouble(String s) {
long longBits = Long.parseLong(s, 16);
double d = Double.longBitsToDouble(longBits);
System.out.println(d);
}
CharlesPrince
2007-09-02
打赏
举报
回复
int StrLen = YourStr.length;
Char SubChar;
int Rst=0;
for (int i=0;i<StrLen;i++)
{
SubChar=YourStr.subString(i);
if (SubChar>='0' && SubChar<='9')
{
Rst+=(SubChar-48)*(i*16);
}
else if(SubChar>='A' && SubChar<='F')
{
Rst+=(SubChar-55)*(i*16);
}
else if(SubChar>='a' && SubChar<='f')
{
Rst+=(SubChar-87)*(i*16);
}
else
{
Rst=0; //如查非法字符
break;
}
}
return Rst; //没有测过,由ASCII码算的,不对的话,自己改改。
qt int、
float
与
16进制
的
转换
分享一些在QT里具备普适性的工具函数。
基本类型与
字符串
以及进制之间
转换
1、其它数据类型的
转换
成
字符串
型 通过查阅类库中各个类提供的成员方法可以看到,几乎java.lang.Object类派生的所有类提供了toString()方法,即将该类
转换
为
字符串
。例如: Characrer,Integer,
Float
,Double,Boolean,Short等类的toString()方法分别用于将字符型、整型、浮点型、双精度浮点型、短整型等类
转换
为
字符串
。代码如下...
Qt中double与
float
与
16进制
字符串
之间的
转换
前述 在一些需求中,我们需要读取一些二进制文件,比如java的class文件,图片文件等等。我们有时需要解析里面具体的内容。通过Qt的QFile类读取文件后,可以将其中的二进制读到一个QBytearray中,而我们可以通过QBytearray的toHex方法将其
转换
为
16进制
字符串
。 而有些时候,这些数据会存储一些double和
float
类型的浮点数据的
16进制
形式,我们需要根据需求把
16进制
转换
为double或
float
。 对于整数int形式,Qt中有明确的方法可以进行
转换
。这里我们用uint的类型,避免
c++中
16进制
字符串
转
float
的2种方法
c++中
16进制
字符串
转
float
的2种方法 菜鸟学习中遇到这样的情况:传感器发送过来的数据为4个
16进制
,接收到后保存为string类型。如收到
16进制
为44556677,则相应的string为“DUfw”,需要对string按照IEE754做
转换
变成853.6010131835938。学长提示用union
转换
。历经挫折,才写出来。 第一种利用union强制
转换
。代码如下 string c...
c#string,Int,
float
与
16进制
之间的
转换
class Program { static void Main(string[] args) { string input = "Hello World!"; char[] values = input.ToCharArray(); foreach (char c in values) { int value = Convert.T...
Java SE
62,622
社区成员
307,252
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章