定点数与浮点数

| 定点和浮点数的计算机体系结构有哪些优点/缺点?我可以理解,两者都会导致某种程度的错误。 我的其他问题是 这些错误是如何产生的? 一种形式比另一种更好吗?     
已邀请:
从浮点指南:   为什么需要浮点数      由于计算机内存有限,因此您   无法存储无穷大的数字   精确度,无论您是否使用   二进制分数或十进制小数:at   有些时候你必须切断。但   需要多少精度?在哪里   需要吗?多少个整数   多少个小数位?         给建筑工程师   高速公路,是否重要   它的宽度是10米或10.0001米-首先,他的测量结果可能不那么准确。   对于设计微芯片的人来说   0.0001米(十分之一毫米)是巨大的差异-但是   他将永远不必面对   距离大于0.1米。   物理学家需要利用速度   光(约3亿)和牛顿   重力常数(约   0.0000000000667)在同一计算中。         满足工程师和芯片   设计师,数字格式必须   提供非常准确的数字   不同的幅度。但是,只有   需要相对精度。至   满足物理学家的要求   可能进行计算   涉及不同的数字   数量级。      基本上,   整数和小数位数不是   有用-解决方案是一种格式   一个浮点数。 至于您的其他问题: 所有不准确的产生都是由于一个原因:您正试图将无限量的数据(例如所有有理数)放入有限的空间(例如64位)中。格式之间唯一不同的是如何准确地表示可以分配的数字。 浮点格式更好,句号。尽管缺少定点共振峰,但它们仍然没有很多限制(几乎所有定点格式也都有)。 话虽这么说,浮点数与定点数的问题常常与二进制数与十进制数混淆了-特别是,人们经常将二进制浮点数格式与(隐式)十进制定点数格式进行比较。无法准确地表示小数部分令大多数人感到惊讶,因此他们认为“浮点格式”有很大的缺点,而实际上却是二进制格式的缺点,一点也不让人惊讶无法准确表示1/3之类的数字。     
您尚未指定使用哪种编程语言,但是,大多数编程语言没有内置的定点类型。 像C和C ++这样的主流语言具有整数类型和浮点类型。如果您打算使用带有四个小数的定点类型之类的东西,则必须在现有的整数类型之上实现。或者,使用现有的库。 当谈到更好的问题时,答案是“取决于”。您需要考虑的事情是: 您打算使用哪种硬件?大多数现代主机(PC :)都有专用的浮点硬件,例如高端嵌入式系统。但是,当使用低端嵌入式系统时,它不会这样做,因此它必须根据现有的汇编程序指令来实现浮点运算。 您的应用程序的性质是什么?它可以自然地与四个小数一起使用吗?如果在最低有效位等上出现舍入错误,将会发生什么。     

要回复问题请先登录注册