32位单精度二进制 = [1个符号位] [8个阶码位] [23个尾数位]

64位单精度二进制 = [1个符号位] [11个阶码位] [52个尾数位]

小数 = [正负符号位]  [整数部分] . [小数部分]

8位阶码位移码偏移量127,11位阶码位移码偏移量1023

一、小数转换成单精度二进制

以32位单精度为例:

小数=-36.35

第一步:符号位,负用1表示,正的用0,所以[1个符号位] 是1

第二步:整数直接转换成二进制

  十进制36 = 二进制0010 0100

第三步:将小数转换成二进制

  十进制0.35 = 二进制 1001 1001 10001 1001 其中1001循环

       计算过程:  0.35 x 2 = 0.7取整得取上次结果的小数部分乘以2

0.7 x 2 = 1.4取整得  取0.7的小数部分即0.7乘以2

0.4 x 2 = 0.8取整得  取1.4的小数部分即0.4乘以2

0.8 x 2 = 1.6取整得  取1.6的小数部分0.6乘以2

0.6 x 2 = 1.2取整得  取上次结果的小数部分乘以2

0.2 x 2 = 0.4取整得

0.4 x 2 = 0.8取整得

                                   ...循环

 第三步:移动小数点计算阶码

 整数二进制.小数二进制

 =  1001 1001 10001 1001

 移动小数点,使二进制变成1.xxx*2n形式(规格化)

 =001.0 0100 0101 1001 1001 1001 10001 1001*25

去掉1.xxx前面的0

=1.0 0100 0101 1001 1001 1001 10001 1001*25

指数的真值是5加上(8位阶码位移码偏移量127)=132

5 + 127 = 132

132的二进制是1000 0100 所以[8个阶码位]是1000 0100

第四步:取1.xxx形式小数点后23位得到[23个尾数]=0 0100 0101 1001 1001 1001 10001 1001 .. (取23位)

第五步:组合二进制

  32位单精度二进制 = [1个符号位] [8个阶码位] [23个尾数位]

           = [1] [1000 0100] [0 0100 0101 1001 1001 1001 10001 1001 .. (取23位)]

           =  1000 0100 0 0100 0101 1001 1001 1001 10001 1001 .. (取23位)

双精度同理

二、二进制转单精度小数

以0011 1001 0010 1011 1110 1000 000 0000为例

第一步:分三段

  0  0111 0010 010 1011 1110 1000 0000 0000

  [1个符号位] [8个阶码位] [23个尾数位]

0表示正数

第二步:计算指数

  0111 0010阶码=十进制114,减去8位阶码位移码偏移量127

  114 - 127 = -13

  在23位尾数前加1.变成 1.[23个尾数],然后向左移动13位(负数向左,正数向右)-- 和坐标轴方法一样

010 1011 1110 1000 0000 0000

第三步:计算小数

  转换成小数=2-14 + 2-16 + 2-18 + 2-20 + 2-21 + 2-22 + 2-23 + 2-24 + 2-26

=0.00008197128772735595703125

  

java 小数转换成二进制的更多相关文章

  1. 将整数转换成二进制的java小程序

    首先我们知道,将整数转换成二进制是将整数除二取余将最后除得的数和得到的余数从下向上写,组成得到的二进制数. java程序实现如下: public class ChangeToErjinzhi { pu ...

  2. java将图片转换成二进制

    package com.oumyye.图片; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; imp ...

  3. java中如何把图片转换成二进制流的代码

    在学习期间,把开发过程经常用到的一些代码段做个备份,下边代码内容是关于java中如何把图片转换成二进制流的代码,应该能对各朋友也有用处. public byte[] SetImageToByteArr ...

  4. php将文件转换成二进制输出[转]

    header( "Content-type: image/jpeg"); $PSize = filesize('1.jpg'); $picturedata = fread(fope ...

  5. [转]C#将image中的显示的图片转换成二进制

    本文转自:http://www.cnblogs.com/shuang121/archive/2012/07/09/2582654.html .将Image图像文件存入到数据库中 我们知道数据库里的Im ...

  6. PDF转换成二进制字符串写入 HTTP 输出流

    最近项目需要做电子签章,需要网页打开PDF签章后保存:正好复习哈二进制和流的转换: 文件转换成二进制字符串写入HTTP输出流 protected void Page_Load(object sende ...

  7. eclipse下将普通的java工程转换成web工程

    开发过程中需要对普通的java工程转换成动态的web工程,网络上查询了资料很简单的几步操作就可以搞定,操作步骤如下: 编辑.project 修改以下配置 <nature>org.eclip ...

  8. C#将image中的显示的图片转换成二进制

    原文:C#将image中的显示的图片转换成二进制 1.将Image图像文件存入到数据库中 我们知道数据库里的Image类型的数据是"二进制数据",因此必须将图像文件转换成字节数组才 ...

  9. Myeclipse Java项目转换成Maven项目

    1.在Eclipse中Java项目转换成Maven项目可以在项目右键-->configure-->Convert Plug-in projects..  就可以.而在myeclipse中项 ...

随机推荐

  1. mysql数据库优化(一)

    在实际项目中,通过设计表架构时,设计系统结构时,查询数据时综合提高查询数据效率 1.适当冗余 数据库在设计时遵守三范式,同时业务数据(对数据的操作,比如资料审核,对某人评分等)和基础数据(比如资料详情 ...

  2. 类名:IExternalCommandAvailability+IExternalCommand实现对某些控件的自定义使用

    起初对于这些名词不懂,后经查阅了解如下,希望对学习者能有所帮助.在Revil里大部分命令在没有打开文档的时候是禁用的,有的在没有打开文档也是可以使用的.而又一些在平面视图是禁用的如标高,有的在3D视图 ...

  3. vs 为什么使用#include "stdafx.h"

    原因:1.减少编译次数 2.减少不必要的处理 流程图: 这个跟宏定义#ifndef xx #define xx  coding here #endif //xx 区别在于: 宏定义是防止头文件重复包含 ...

  4. go语言问题集锦

    ==============================================beego框架=========================================== 1.使 ...

  5. Win10 安装SqlServer2012 无法访问数据库

    win10系统,安装好vs2017,sqlserver2012, 在abp     执行 Update-Database 会出错 具体解决办法是SqlServer2012的1433端口没打开. 打开办 ...

  6. Asp.net core中由于页面编码导致的中文乱码

    问题描述 最近使用asp.net core写了一个简单的网站,在windows系统下完全没有出现问题.后来在linux系统中搭建了docker,并且在linux中自动使用git获取源码,编译,部署一条 ...

  7. rad 10.2

    最大分辨率跟笔记本走了 笔记本最大分辨率 1388 程序界面是 1980*1080 笔记本打开过程序,就自动变为  1388了,界面全乱了.因为设置的 锚点是 右下.

  8. CentOS 7设置yum仅仅下载rpm不安装总结

    前言 参考文章:https://linux.cn/article-7937-1.html 在参考文章的基础上进行总结. 使用download-only插件实现 首先我们可以使用downloadonly ...

  9. centos 7安装vnc服务端&vnc客户端连接

    前言 工作需求,需要用到vnc,介绍一下相关内容. 安装vnc服务端 在执行其他相关的之前,需要先安装一下vnc的服务端,命令如下: yum install tigervnc-server 配置vnc ...

  10. 微信小程序自定义组件实现

    官方从 1.6.3 开始对于自定义组件这一块有了比较大的变动,首先比较明显的感觉就是文档比以前全多了,有木有!,现在小程序支持简洁的组件化编程,可以将页面内的功能模块抽象成自定义组件,以便在不同的页面 ...