现有一个16进制数c803c0e8需要转换为浮点(32位)数。
- 将16进制数转换为long类型
- 将long类型转换为二进制字符串
- 将二进制字符串转换为浮点型
- 结果为-134915.625
代码如下:
long l =Long.parseLong("c803c0e8",16);
String d = Long.toBinaryString(l);
output:
11001000000000111100000011101000
将二进制转换为浮点型如下:
1第一位
10010000中间8位
00000111100000011101000后23位
<pre name="code" class="java"><span style="background-color: rgb(0, 0, 0);"><span style="color:#FFCCFF;">1</span></span> <span style="background-color: rgb(255, 204, 204);">1001 0000</span> <span style="background-color: rgb(51, 204, 255);">000 0011 1100 0000 1110 1000</span>
第一位为符号位,0为正,1为负- 1. 00000111100000011101000*2^( 1001 0000-127)
阶数为正17,小数点后移17位-100000111100000011.101000
分别对整数部分和小数部分做10进制运算,得出结果-134915.625
分享两个链接
本文介绍了如何将16进制数转换为32位浮点数的详细过程,包括从16进制到长整型,再到二进制字符串的转换,最后通过特定的二进制格式解析得到浮点数值,并解释了转换过程中涉及到的符号位、阶码和尾数的概念。

被折叠的 条评论
为什么被折叠?



