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

本文介绍了如何将16进制数转换为32位浮点数的详细过程,包括从16进制到长整型,再到二进制字符串的转换,最后通过特定的二进制格式解析得到浮点数值,并解释了转换过程中涉及到的符号位、阶码和尾数的概念。

现有一个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

 

分享两个链接

浮点数的二进制表示

在线任意进制转换工具


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值