新闻资讯

NEWS CENTER
栏目导航

Future-S

发布时间:Mar 25, 2019         已有 人浏览

  类型的数值进行计算, 其结果是不精确的。这个问题,与浮点数在计算机内部的表示方法有关系。查找资料发现:由于计算机只能处理二进制数据0和1,计算机会在计算是先把十进制转换成二进制,

  浮点数是我们在程序里常用的数据类型,它在内存中到底是怎么样的形式存在,是我了解之前是觉得好神奇,以此记录,作为学习笔记。

  现代计算机中,一般都以IEEE 754标准存储浮点数,这个标准的在内存中存储的形式为:

  对于32位的单精度浮点数,数符分配是1位,阶码分配了8位,尾数分配了是23位。

  根据这个标准,我们来尝试把一个十进制的浮点数转换为IEEE754标准表示。

  转换成二进制的浮点数,即把小数点移动到整数位只有1,即为:1.0110010001 * 2^111,111是二进制,由于左移了7位,所以是111

  阶码: 阶码的计算公式:阶数 + 偏移量, 阶码是需要作移码运算,在转换出来的二进制数里,阶数是111(十进制为7),对于单精度的浮点数,偏移值为01111111(127) [偏移量的计算是:2^(e-1)-1, e为阶码的位数,即为8,因此偏移值是127],

  结论:从输出结果不难看出双引号内的内容会直接进行输出,而使用联接符+仅能将两个字符串连接不会进行运算。

Copyright © 2002-2019 今日六合特码开什么 版权所有