题目:Show the IEEE754 binary representation for the floating-point number (10.5)10 in single precision. 单精度存储格式 1 符号位S(sign) - 1bit0代表正号,1代表负号 2 指数位E(exponent) - 8bitE的取值范围为0-255(无符号整数),实际数值e=E-127。 3 尾数位M(mantissa) - 23bit M也叫有效数字位(significant)、系数位(coefficient), 甚至被称作“小数”。在一般情况下,m=(1.M)2,使得实际起作用范围为1≤尾数<2。 实际例子: 对于内部存储数据(00111111 01100110 01100110 01100110)2:符号位(最左侧)S=0。这表示是个正数指数(左侧第2-9位)E=(01111110)2=(126)10,所以e=E-127=-1。尾数(最后的23位)M=(1100110 01100110 01100110)2,m=(1.M)2=(1.7999999523162841796875)10该二进制小数转为10进制的计算方式为1 + (1/2+1/4) + (1/32+1/64) + (1/512+1/1024)……实际值N=1.7999999523162841796875*2^-1=0.89999997615814208984375 十进制转二进制 2.025675 (1)整数部分2,二进制为10 小数部分0.025675, 二进制是.0000 0110 1001 0010 1010 01 连起来是10.0000 0110 1001 0010 1010 01,这部分是有效数字。 所以尾数为: 0000 0011 0100 1001 0101 001(23位) (2)把小数点移到第一个1的后面,左移了1位, 加上偏移量127:127+1=128,二进制是10000000,这是指数部分。 (3)2.025675是正数,所以符号位是0。把符号位,指数和尾数连起来: 0 10000000 00000011010010010101001 把这32位按8位一节整理一下,得: 0100 0000 0000 0001 1010 0100 1010 1001 十六进制表示为 4001A4A9 10.5 (1)整数部分10,二进制为1010 小数部分0.5, 二进制是.1 连起来是1010.1,这部分是有效数字。 所以尾数为: 0101 0000 0000 0000 0000 000(23位) (2)把小数点移到第一个1的后面,左移了3位, 加上偏移量127:127+3=130,二进制是10000010,这是指数部分。 (3)10.5是正数,所以符号位是0。把符号位,指数和尾数连起来: 0 10000010 01010000000000000000000 把这32位按8位一节整理一下,得: 0100 0001 0010 1000 0000 0000 0000 0000 十六进制表示为 41280000 |
更多回帖