计算机实数表示法---浮点数(一)

实数包含有理数和无理数,直观的看无理数是无限不循环的小数,有理数包含整数、无限循环小数和有限位的小数,现要着重讨论的是小数的表示方法。blog

举例说明:it

对于11.75先转化为二进制形式循环

    11=8+2+1=10011二进制

    0.75=0.5+0.25==0.11方法

    转化为规格化的二进制指数形式为11.75=10011.11=im

    相似的对于-0.75转化为格式化的二进制指数形式为-0.75=-0.11=img

     对于这两个数采用单精度浮点数格式()存储分别为    co

     0_10000011_00111100000000000000000、1_01111110_10000000000000000000000。浮点数

符号位比较好解释:0表示正数、1表示负数;ps

指数位8位e采用无符号数表示,范围是0-255,可是为了将实际指数范围从-127~128来表达很小或者很大的数时须要将实际指数+偏移量127,即10000011=4+127=131,01111110=-1+127=126;

尾数位就是从小数点日后取23位,不够的补0。

以上是单精度浮点数的表示规则,下面着重说明某些特殊值的表示:

一、0有正0和负0分别表示为0_00000000_00000000000000000000000,1_00000000_00000000000000000000000

二、无穷大和无穷小分别表示为1.0f/0.0f(分子只要不为0.0便可)  <=> 0_11111111_00000000000000000000000), -1.0f/0.0f  <=> 1_11111111_00000000000000000000000

三、NaN表示为0.0f/0.0f <=> 0_11111111_10000000000000000000000  尾数位只要不为0便可

四、指数位为0,尾数位不为0表示非规格化的,这类数已经很是小了可是合法的能够经过Float.intBitsToFloat(0b1_00000000_11000000000000000000000)进行验证。

相关文章
相关标签/搜索