您的位置:首页 > 其它

浮点数的二进制表示-实例

2008-10-30 18:41 162 查看
/* 注意,形如2[3]表示2的3次方 */
实例一:38414.4 的IEEE浮点数表示法(double):

double型的指数域有11位,所以偏置值为 2[11-1]-1 = 1023

38414.4 = 1001011000001110.0110011001100110011001100110011001101 = 1.0010110000011100110011001100110011001100110011001101*2[15]

//0.4=0.5*0+0.25*1+0.125*1+0.0625*0+……没完没了,但小数域只需52位,整数部分已经有了15位,故小数部分只需取37位.

指数域 = (15+1023)B = 1000 0001 110

小数域 = 0010 1100 0001 1100 1100 1100 1100 1100 1100 1100 1100 1100 1101

最终表示:

0 1000 0001 110 0010 1100 0001 1100 1100 1100 1100 1100 1100 1100 1100 1100 1101

符号 指数域 (11) 小数域(52)

格式化为:

01000000 11100010 11000001 11001100 11001100 11001100 11001100 11001101

实例二:
234.5 的IEEE浮点数表示法(double):

double型的指数域有11位,所以偏置值为 2[11-1]-1 = 1023

234.5 = 11101010.1 = (1.11010101)*2[7]

指数域 = (7+1023)B = 1000 0000 110

小数域 = 1101 0101 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

//小数域需要52位,但11010101只有8位,不足就后面补0.

最终表示:

0 1000 0000 110 1101 0101 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

符号 指数域(11) 小数域(52)

格式化为:

01000000 01101101 01010000 00000000 00000000 00000000 00000000 00000000

实例三:3490593.0 的IEEE浮点数表示法(float):

float型的指数域有8位,所以偏置值为 2[8-1]-1 = 127

3490593.0 = 1101010100001100100001.0 = 1.1010101000011001000010*2[21]

指数域 = (21+127)B = 1001 0100

小数域 = 1010 1010 0001 1001 0000 100

最终表示:

0 1001 0100 10101010000110010000100

符号 指数域(8) 小数域(23)

格式化为:

01001010 01010101 00001100 10000100
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: