如果任意一个二进制浮点数都可以写成(-1)^S * M * 2^E这个形式,,那么我只需要把S E M 这三个数存储起来即可,如果知道这三个数,我们完全可以倒推回去,从而先得到二进制浮点型
然后再转化成十进制浮点数,这样就可以还原出来我的真实的十进制浮点数了;
举例来说:
为了方便讲解,在这里幂次方都使用 ^ 来表示,,不考虑 ^ 在C语言中是按位异或的情况;
十进制的5.0,写成二进制是 101.0 ,相当于 1.01×2^2 ,即,(-1)^0 * 1.01 * 2^2 ,对于十进制浮点型数字来说,如果是123.123,就可以写成,1.23123 * 10^2,,所以,类比过来,
对于二进制的浮点型数字,101.0,就可以写成:1.01* 2^2,那么,按照上面V的格式,可以得出s=0,M=1.01,E=2。
十进制的-5.0,写成二进制是 -101.0 ,相当于 -1.01×2^2 ,即:(-1)^1 * 1.01 * 2^2 那么,s=1,M=1.01,E=2。