赞
踩
单双精度浮点数的定义规则:
题目给的数字是16进制45100000H
首先要知道符号阶码尾数SEM(1+8+23)
①先转换为二进制
0100 0101 0001 0000 0000 0000 0000
②求符号阶码及尾数
s就是0表示正数
E是10001010 也就是138
M就是001
③根据公式求二进制真值
已知公式:
真值 =
(
−
1
)
s
×
1.
M
×
2
e
(-1)^s × 1.M × 2^e
(−1)s×1.M×2e
又 e = E - 127(127是单精度浮点数的偏移量)
即,真值 = ( − 1 ) s × 1. M × 2 E − 127 (-1)^s × 1.M × 2^{E-127} (−1)s×1.M×2E−127
所以,45100000H真值 =
( − 1 ) 0 × 1.001 × 2 138 − 127 = 1.001 × 2 11 (-1)^0 × 1.001 × 2^{138-127} = 1.001 × 2^{11} (−1)0×1.001×2138−127=1.001×211
④以上科学计数法小数部分是二进制的,因此需要化成十进制
1.001 十 分 位 表 示 2 − 1 百 分 位 2 − 2 千 分 位 2 − 3 1.001 十分位表示2^{-1} 百分位2^{-2} 千分位2^{-3} 1.001十分位表示2−1百分位2−2千分位2−3
1.001化成十进制就是 1 × 2 0 + 0 × 2 − 1 + 0 × 2 − 2 + 1 × 2 − 3 = 1.125 1 × 2^0 + 0 × 2^{-1} + 0 × 2^{-2} + 1 × 2^{-3} = 1.125 1×20+0×2−1+0×2−2+1×2−3=1.125
最终结果就是 ( 1.125 ) 10 × 2 11 (1.125)_{10} × 2^{11} (1.125)10×211
讲解一下0.085
转换过程如下图:
1.3 6 10 × 2 − 4 1.36_{10} × 2^{-4} 1.3610×2−4
小数部分0.36转换二进制过程:
验证0.36正确性
0.35999977588654
(
41360000
)
16
(41360000)_{16}
(41360000)16
求其十进制的值是多少?
①先转换为二进制
0100 0001 01 0011 0110 0000 0000 0000 0000
②求SEM
S = 0
E = 10000010
M = 011 0110
真 值 = ( − 1 ) s × 1. M × 2 e = 1.0110110 × 2 130 − 127 = 1011.011 = 11.375 真值 = (-1)^s × 1.M × 2^e = 1.011 0110 × 2_{130 - 127} = 1011.011 = 11.375 真值=(−1)s×1.M×2e=1.0110110×2130−127=1011.011=11.375
( 20.59375 ) 10 (20.59375)_{10} (20.59375)10
IEEE-754标准,32bit
①转二进制
20.59375 -> 10100.10011
求解过程如下:
②规格化
( 10100.10011 ) 2 − > 1.010010011 × 2 4 (10100.10011)_{2} -> 1.010010011 × 2^4 (10100.10011)2−>1.010010011×24
③
真
值
=
(
−
1
)
s
×
1.
M
×
2
e
真值 = (-1)^s × 1.M × 2^e
真值=(−1)s×1.M×2e
e = 4 = E - 127
得出E = 131 化为二进制得:10000011
④SEM
S = 0
E = 10000011
M = 010010011
0 10000011 01001001100000000000000
转 换 为 16 进 制 : ( 41 A 4 C 000 ) 16 转换为16进制: (41A4C000)_{16 } 转换为16进制:(41A4C000)16
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。