25.68125表示为4字节浮点数等于什么?要怎么计算

1个回答

  • 4字节浮点数,即32位浮点数,参照IEEE-754标准,为单精度浮点数.

    将十进制数值转为二进制数值:

    先确定转换后小数的位数为16位,则将其乘以65536(2^16)进行整数化.

    (25.68125)10*(2^16)10

    =(25.68125)10*(65536)10

    =(1683046.4)10

    >(1683046)10 //去掉小数,保留整数部分

    =(19AE66)16

    =(0001 1001 1010 1110 0110 0110)2

    因为最初乘了65536,即2的16次方,所以换算成二进制时应右移16位,去掉前导零和后导零,

    即(11001.101011100110011)2

    单精度浮点数保存的字节格式如下:

    地址 +0 +1 +2 +3

    内容 SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM

    根据IEEE浮点数的定义,

    (25.68125)10

    =(11001.101011100110011)2

    将上述二进制数规格化,

    >+1.1001101011100110011 * (2^4)

    符号S为正,等于0 B;

    指数EEEEEEEE为4+127=131,等于10000011 B;

    尾数为100 1101 0111 0011 0011 0000 B;

    合成后为

    0 10000011 100 1101 0111 0011 0011 0000

    若将上述值表示为十六进制数,则为(41 CD 73 30)16.

    (0100 0001 1100 1101 0111 0011 0011 0000)2