首页 技术 正文
技术 2022年11月10日
0 收藏 926 点赞 2,578 浏览 1296 个字

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

  

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,498
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,911
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,745
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,499
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,138
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,302