java实现十六进制转换为浮点数

现有一个16进制数c803c0e8需要转换为浮点(32位)数。

  1. 将16进制数转换为long类型
  2. 将long类型转换为二进制字符串
  3. 将二进制字符串转换为浮点型
  4. 结果为-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

 

分享两个链接

浮点数的二进制表示

在线任意进制转换工具


  • 0
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

q288288

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值