一个浮点数a由两个数m和e来表示a = m × b^e在任意一个这样的系统中,我们选择一个基数b记数系统的基和精度p即使用多少位来存储m即尾数是形如±的p位数每一位是一个介于0到b1之间的整数,包括0和b1如果m的第一位是非0整数,m称作规格化的有。
2种表示方法 1十进制小数形式,如108,98,182指数形式,如345e6 浮点数的类型分3类1float,单精度浮点数,visual C下占用4个字节,表示范围34e38~34e38 2double,双精度浮点数,占用8个字节,表示范围17e308~17e308 3long double,长双精度浮点数,占用。
浮点数的概念是相对于定点数的,浮点数是精度可变的一种表示法,其表示的数越大,其精度就越低,这也刚好满足科学上的需要单精度浮点数是 32 位的,格式如下域 符号位 指数阶码 尾数 长度 1 8 23 二进制0 00000000 00000000 可以看出,这其中真正用来表示原来数据的也就。
3转换例子按照IEEE浮点数表示法,将float型浮点数0f转换为二进制注这里的f表示浮点数,为十进制数,不是表示16十六进制处理不带小数的浮点数时,直接将整数部转化为二进制表示00也可以这样表示000然后将小数点向左移,一直移到离最高位只有1位1111。
在计算机系统的发展过程中,曾经提出过多种方法表示实数,但是到为止使用最广泛的是浮点表示法相对于定点数而言,浮点数利用指数使小数点的位置可以根据需要而上下浮动,从而可以灵活地表达更大范围的实数1 单精度浮点型float单精度浮点型float 专指占用32位存储空间的单精度singleprecision。
C语言中按照精度的不同分别使用float,double和longdouble表示,默认浮点类型是double,float占据四个字节,double占据8个字节,longdouble大于等于8个字节,Windows 32位和64位系统long double都是8个字节,Ubuntu1804系统下longdouble是占据16个字节浮点数的常量可以使用十进制的小数和科学计数法表示,科学。
至此,我们引入IEEE754 标准,该标准约束了浮点数的大部分使用设置尾数用原码阶码用“移码”基为21尾数用原码,且隐藏尾数最高位原码非0值浮点数的尾数数值最高位必定为 1,因此可以忽略掉该位,这样用同样多的位数就能多存一位二进制数,有利于提高数据表示精度,称这种处理方案使用了隐藏。
转载请注明来自浙江华友钴业股份有限公司,本文标题:《浮点型数据的表示方法》
还没有评论,来说两句吧...