1.如何将二进制转换为十进制浮点数?
2.设在计算机中用16位二进制数表示浮点数
3.-11.25二进制半精度和单精度浮点编码
4.用12位的进制具二进制代码表示一个浮点数 65,阶码为4位,转换制转尾数为8位,浮点浮点求其浮点数表示是数源数工什么(均用原码)
如何将二进制转换为十进制浮点数?
首先把x和y转换成浮点数x= -5 / = -5 × 2 ^ (-8) = (.)× 2 ^ (-)
y= / = (.)× 2 ^ (-)
x的阶码 [Jx]=-= [Jx]补=
y的阶码 [Jy]=-= [Jy]补= [-Jy]补=
所以:
[x]补=,. [y]补=,码进.
对阶
阶差 = [Jx]补 - [Jy]补 = [Jx]补 + [-Jy]补 = + = (即为-1)
所以x的进制具程式交易源码阶码比y的阶码低1,x的转换制转尾数要向右移一位,阶码+1,浮点浮点
得[x]补 = ,数源数工.
尾数求差
. + . = .
得:[x-y]补 = ,码进.
规格化
右规一次,进制具阶码+1,转换制转得:[x-y]补 = ,浮点浮点网页看源码.(此处右移丢弃了一个0)
舍入处理
因为右移丢弃0,数源数工直接舍去。码进
溢出判断
最后阶符为,没有溢出。
将[x-y]补 转换为真值
[x-y]补 = ,.
原码 ,登录源码6-0.
最后得 [x-y] = (-0.)× 2 ^ (-3) = (-)/
设在计算机中用位二进制数表示浮点数
-.
首先移动小数点,化为 -1.×2^-6
阶码为-6,用四位补码表示为;
尾码为总计位,符号位为1,因此表示为
因此最终整理为
-.二进制半精度和单精度浮点编码
将原始数据进行整数化:
(.)*(2^2)
=(.)*(4)
=()
=(2D)
=( )2
=()2
因为最初乘了4,即2的loadash源码分析2次方,所以换算成二进制时应右移2位,去掉前导零,
即(.)2
半精度浮点数保存的字节格式如下:
地址:+0 +1
内容:SEEE EEMM MMMM MMMM
单精度浮点数保存的字节格式如下:
地址:+0 +1 +2 +3
内容:SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM
根据IEEE浮点数的定义,将上述二进制数规格化:
(-.)
>(-.)2
>-1. * (2^3)
符号S为负,等于1 B;
指数EEEEE为3+=,等于 B;(半精度)
指数EEEEEEEE为3+=,源码之家前台等于 B;(单精度)
尾数为 B;(半精度)
尾数为 B; (单精度)
合成后为
1 (半精度) =CDA0 H
1 (单精度) =C H
用位的二进制代码表示一个浮点数 ,阶码为4位,尾数为8位,求其浮点数表示是什么(均用原码)
阶码用原码表示,阶符为0表示正数,为1表示负数。尾数用原码表示,尾符为0表示正数,为1表示负数。
浮点数必须规格化,即尾数的小数点后第一位必须是1。
因此,一个浮点数 的原码表示是:
阶码: 的二进制形式是 ,需要左移 6 位才能规格化为 1. ,所以阶码的值是 6 ,阶符为0(正),阶码的原码是 。
尾数: 的二进制形式规格化后是 1. ,去掉小数点后第一位的1(隐含位),尾符为0(正),尾数的原码是 。
所以一个浮点数 的位二进制代码(阶码4位,尾数8位)是 。