固定点和浮点数的计算机体系结构有哪些优点/缺点?我可以理解,两者都导致各种不准确。
我的其他问题是
如何出现这些不准确之处?
一种形式比另一种更好吗?
答案 0 :(得分:3)
为什么需要浮点数
由于计算机内存有限,你 不能存储无限的数字 精确,无论你是否使用 二进制分数或十进制分数:at 有一点你必须切断。但 需要多少准确度?在哪里 它需要吗?多少位整数 以及多少位数?
- 建筑工程师 高速公路,无论是否 它的宽度为10米或10.0001米 - 他的测量结果可能并不准确。
- 设计微芯片的人, 0.0001米(十分之一毫米)是一个巨大的差异 - 但是 他永远不必处理 距离大于0.1米。
- 物理学家需要使用速度 光(约3亿)和牛顿 引力常数(约 0.0000000000667)在同一计算中。
满足工程师和芯片 设计师,数字格式必须 提供非常精确的数字 不同的幅度。但是,只有 需要相对准确性。至 满足物理学家,一定是 可以进行计算 涉及不同的数字 大小
基本上,有固定数量的 整数和小数位数不是 有用 - 解决方案是一种格式 有一个浮点。
至于你的其他问题:
话虽如此,浮点与固定点的问题经常与二进制与十进制相混淆 - 具体而言,人们经常将二进制浮点格式与(隐式)十进制定点格式进行比较。不能准确地表示小数分数是大多数人感到惊讶的东西,因此他们认为这是“浮点格式”的一个很大的缺点,而实际上它是二进制格式的缺点,他们并不感到惊讶于不能够准确地表示1/3之类的数字。
答案 1 :(得分:0)
您尚未指定使用的编程语言,但是,大多数编程语言没有内置的固定点类型。
C和C ++等主流语言具有整数类型和浮点类型。如果你打算使用类似定点类型的东西,例如四位小数,你必须在现有的整数类型之上实现它。或者,使用现有的库。
当涉及到更好的问题时,答案是“它取决于”。你需要考虑的事情是:
您打算使用哪种硬件?大多数现代主机(PC:s)都有专用的浮点硬件,同样也是高端嵌入式系统。但是,当使用低端嵌入式系统时,它不会,因此它必须根据现有的汇编程序指令实现浮点运算。
您申请的性质是什么?是否可以自然地使用,例如,四位小数。如果在最低有效位等上出现舍入错误,将会发生什么。