因为要参加软考了(当然也只有考试有这种魅力),我得了概浮点数转化为二进制表示这个最难的知识点(个人认为最难)。俺结合大量的从网上收集而来的资料现整理如下,希望对此知识点感兴趣的pfan有所帮助。

基础知识:

十进制转十六进制;

十六进制转二进制;

IEEE制定的浮点数表示规则;

了解:

目前C/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算。这种结构是一种科学计数法,用符号、指数和尾数来表示,底数定为2——即把一个浮点数表示为尾数乘以2的指数次方再添上符号。下面是具体的规格:

符号位 阶码 尾数 长度

float     1          8        23      32

double          1         11        52      64

以下通过几个例子讲解浮点数如何转换为二进制数

例一:

已知:double类型38414.4。

求:其对应的二进制表示。

分析:double类型共计64位,折合8字节。由最高到最低位分别是第63、62、61、……、0位:

最高位63位是符号位,1表示该数为负,0表示该数为正;

62-52位,一共11位是指数位;

51-0位,一共52位是尾数位。

步骤:按照IEEE浮点数表示法,下面先把38414.4转换为十六进制数。

把整数部和小数部分开处理:整数部直接化十六进制:960E。小数的处理:

0.4=0.5*0+0.25*1+0.125*1+0.0625*0+……

实际上这永远算不完!这就是著名的浮点数精度问题。所以直到加上前面的整数部分算够53位就行了。隐藏位技术:最高位的1不写入内存(最终保留下来的还是52位)。

如果你够耐心,手工算到53位那么因该是:38414.4(10)=1001011000001110.0110011001100110011001100110011001100(2)

科学记数法为:1.001011000001110 0110011001100110011001100110011001100,右移了15位,所以指数为15。或者可以如下理解:

1.001011000001110 0110011001100110011001100110011001100×2^15

于是来看阶码,按IEEE标准一共11位,可以表示范围是-1024 ~ 1023。因为指数可以为负,为了便于计算,规定都先加上1023(2^10-1),在这里,阶码:15+1023=1038。二进制表示为:100 00001110;

符号位:因为38414.4为正对应 为0;

合在一起(注:尾数二进制最高位的1不要):

01000000 11100010 11000001 110 01100  11001100  11001100  11001100  11001100

java浮点数转二进制_浮点数转换成二进制相关推荐

  1. 100转换成二进制 java,一段简单的java代码,十进制转二进制

    一段简单的java代码,十进制转二进制 mip版  关注:188  答案:5  悬赏:40 解决时间 2021-01-23 23:14 已解决 2021-01-23 05:43 代码如下,希望可以帮我 ...

  2. java十进制转换成二进制

    十进制数转二进制数,跟据不同的开发语言其转换方式有很多,在Java中如果相把一个十进制的整数来转换成二进制那是举手之劳,非常简单,只要用Integer.toBinaryString(int)方法就可以 ...

  3. java十进制转二进制(输入一个十进制数将其转换成二进制)

    十进制数转二进制数,跟据不同的开发语言其转换方式有很多,在Java中如果相把一个十进制的整数来转换成二进制那是举手之劳,非常简单,只要用Integer.toBinaryString(int)方法就可以 ...

  4. java将图片的url转换成File,File转换成二进制流byte

    package com.xqy;import java.io.*; import java.net.HttpURLConnection; import java.net.URL; //java将图片的 ...

  5. java中实现的十进制转换成二进制的简单代码

    1.思路 我们可以使用简单的数学计算方法对十进制数进行二进制转换. 用这个十进制的数不停的除以2取它的余数,直至这个数为0,用30这个数举个例子: 30 / 2 = 15 .........0 15 ...

  6. Java将图片转换成二进制,将二进制转换成图片

    Java将图片转换成二进制,将二进制转换成图片 static BASE64Encoder encoder = new sun.misc.BASE64Encoder();static BASE64Dec ...

  7. php 将图片转成二进制,php怎么把图片转换成二进制_后端开发

    php如何去掉数组的key_后端开发 在PHP中可以使用"array_values"函数去掉数组的key,该函数的作用就是返回包含数组中所有的值的数组,其语法是"arra ...

  8. mysql 图片转为二进制_如何把图片转换成二进制存入数据库

    public static byte[] imgBytesIn;//用来存储图片的二进制 Stream ms; byte[] picbyte; //在创建数据库链接,测试链接成功后,在高级里可自动生成 ...

  9. python十进制小数转二进制_在python中如何将十进制小数转换成二进制

    在python中如何将十进制小数转换成二进制 在最近的学习中发现博客园里面找不到如何在python中如何将十进制小数转换成二进制,所以我用土方法写了一个超级简单的转换方法(不过转换出来的数只是形式上是 ...

  10. python 浮点数精度丢失_浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源...

    浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源 无论在java python javaScript里面都存在 1+ 2!== 3 问题,这个问题的产生根源在于计算存储数字是二进制,对无限循环小 ...

最新文章

  1. 关于 线程模型中经常使用的 __sync_fetch_and_add 原子操作的性能
  2. 解决远程连接mysql错误1130
  3. asp.net 加载xml到menu
  4. python中cmd如何切换盘_redis 中如何切换db
  5. 90后,是时候想想你的副业了
  6. oracle 某一字段取反
  7. Android 四大组件学习之Activity六
  8. 服务器安全-使用ipset 和iptables禁止国外IP访问
  9. STM8S自学笔记-005 精准延时
  10. 关于计算机算法学习路线(持续更新)
  11. python数据分析基础阮敬源码_python数据分析基础 阮敬pdf|保靖制作项目投资实施细则...
  12. 上海航芯 | 从STM32F103到ACM32F403的U盘程序移植工程
  13. firefox浏览器书签意外丢失恢复经验
  14. 自定义纸张重启就没了
  15. Android:NDK
  16. python 实现文件的批量压缩为.zip格式+.zip格式文件的解析
  17. 说Python已经饱和的人,你一定不懂这个技能
  18. Amazon/eBay/Wish/Lazada/速卖通/Shopee/tiktok/沃尔玛/煤炉/补单黑科技?如何解决账号问题。
  19. 天行健,君子以自强不息!
  20. java中read方法

热门文章

  1. [Python] np.unique(ndarray) 返回ndarray的无重复元素的数组
  2. Quartus17下载程序进FPGA
  3. windows 安装jenkins
  4. mybatis框架增删改的注意事项 ,不同数据库取消转义的方法
  5. C# WPF 利用NPOI读写Excel文件
  6. 【转】深入理解JVM—JVM内存模型
  7. 楼市信贷新政力度超市场预期 房企放风要涨价
  8. LNMP环境下压力测试时的主要调试参数
  9. IOS开发学习----给表视图设置缩进级别
  10. 转:给.net 程序员的一些建设