java浮点数转二进制_浮点数转换成二进制
因为要参加软考了(当然也只有考试有这种魅力),我得了概浮点数转化为二进制表示这个最难的知识点(个人认为最难)。俺结合大量的从网上收集而来的资料现整理如下,希望对此知识点感兴趣的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浮点数转二进制_浮点数转换成二进制相关推荐
- 100转换成二进制 java,一段简单的java代码,十进制转二进制
一段简单的java代码,十进制转二进制 mip版 关注:188 答案:5 悬赏:40 解决时间 2021-01-23 23:14 已解决 2021-01-23 05:43 代码如下,希望可以帮我 ...
- java十进制转换成二进制
十进制数转二进制数,跟据不同的开发语言其转换方式有很多,在Java中如果相把一个十进制的整数来转换成二进制那是举手之劳,非常简单,只要用Integer.toBinaryString(int)方法就可以 ...
- java十进制转二进制(输入一个十进制数将其转换成二进制)
十进制数转二进制数,跟据不同的开发语言其转换方式有很多,在Java中如果相把一个十进制的整数来转换成二进制那是举手之劳,非常简单,只要用Integer.toBinaryString(int)方法就可以 ...
- java将图片的url转换成File,File转换成二进制流byte
package com.xqy;import java.io.*; import java.net.HttpURLConnection; import java.net.URL; //java将图片的 ...
- java中实现的十进制转换成二进制的简单代码
1.思路 我们可以使用简单的数学计算方法对十进制数进行二进制转换. 用这个十进制的数不停的除以2取它的余数,直至这个数为0,用30这个数举个例子: 30 / 2 = 15 .........0 15 ...
- Java将图片转换成二进制,将二进制转换成图片
Java将图片转换成二进制,将二进制转换成图片 static BASE64Encoder encoder = new sun.misc.BASE64Encoder();static BASE64Dec ...
- php 将图片转成二进制,php怎么把图片转换成二进制_后端开发
php如何去掉数组的key_后端开发 在PHP中可以使用"array_values"函数去掉数组的key,该函数的作用就是返回包含数组中所有的值的数组,其语法是"arra ...
- mysql 图片转为二进制_如何把图片转换成二进制存入数据库
public static byte[] imgBytesIn;//用来存储图片的二进制 Stream ms; byte[] picbyte; //在创建数据库链接,测试链接成功后,在高级里可自动生成 ...
- python十进制小数转二进制_在python中如何将十进制小数转换成二进制
在python中如何将十进制小数转换成二进制 在最近的学习中发现博客园里面找不到如何在python中如何将十进制小数转换成二进制,所以我用土方法写了一个超级简单的转换方法(不过转换出来的数只是形式上是 ...
- python 浮点数精度丢失_浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源...
浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源 无论在java python javaScript里面都存在 1+ 2!== 3 问题,这个问题的产生根源在于计算存储数字是二进制,对无限循环小 ...
最新文章
- 关于 线程模型中经常使用的 __sync_fetch_and_add 原子操作的性能
- 解决远程连接mysql错误1130
- asp.net 加载xml到menu
- python中cmd如何切换盘_redis 中如何切换db
- 90后,是时候想想你的副业了
- oracle 某一字段取反
- Android 四大组件学习之Activity六
- 服务器安全-使用ipset 和iptables禁止国外IP访问
- STM8S自学笔记-005 精准延时
- 关于计算机算法学习路线(持续更新)
- python数据分析基础阮敬源码_python数据分析基础 阮敬pdf|保靖制作项目投资实施细则...
- 上海航芯 | 从STM32F103到ACM32F403的U盘程序移植工程
- firefox浏览器书签意外丢失恢复经验
- 自定义纸张重启就没了
- Android:NDK
- python 实现文件的批量压缩为.zip格式+.zip格式文件的解析
- 说Python已经饱和的人,你一定不懂这个技能
- Amazon/eBay/Wish/Lazada/速卖通/Shopee/tiktok/沃尔玛/煤炉/补单黑科技?如何解决账号问题。
- 天行健,君子以自强不息!
- java中read方法