为什么我们需要整数并在处理器中浮动?谢谢
答案 0 :(得分:2)
整数用于计数,浮点数用于计算。我们将它们都放在数学中(它们分别称为整数和实数),因此我们在算法和程序中也需要它们。故事结束。
当然,大多数fp数字实现的范围大于大多数整数实现的范围但是我明天可以发明一种语言,其中我允许512位整数但只有16位浮点数(1符号位, 3个指数位,12个有效位)。整数仍然没有在分割下关闭,并且浮点数仍然没有用于计数,因为虽然在fp数字上有后继函数,但是没有实数,我们想假装fp数是一个紧密的实现实数。
不,处理器上的整数并不容易,处理器对位进行基本的布尔逻辑运算。如果处理器X1比fp算术更快地进行整数运算,那么通过存储体的拖网会找到一个反例。
我们甚至不需要分数的fp数字,我们可以使用整数对来表示分子和分母。
整数的绝对精度是我们使用它们进行计数的原因。出于所有实际目的,现有fp实现的精确度已经足够(现在,有一种疯狂的说法可以吸引分歧!)
此致
标记
答案 1 :(得分:0)
它们都只是数字,所以你可能认为你不需要区分。但是,在许多语言中,进行整数数学时可以进行优化 - 可以使用CPU指令进行加法,减法,乘法和除法。同样地,有些指令对浮点数进行了相似的操作,但由于数字在机器中的表示方式不同,并且操作不同,因此在处理器中显而易见的整数和浮点数之间的区别是有意义的。编程语言本身。
C#,Java,C ++和其他语言都有不同的类型来处理整数与浮点数。 Javascript做出了相反的选择 - 没有特殊的整数类型,如果我没有弄错,所有数字都是浮点数。
至于为什么需要整数和浮点数 - 浮点数允许更宽范围的值,尽管在极端(例如天文数量),精度会下降。您不能在浮点数学中精确表示1.37999933247474x10e24。另一方面,int为固定数字集提供精确度和速度。
答案 2 :(得分:0)
整数在处理器资源上更容易,而且通常更快。这是多年前的一个大问题,当时处理器甚至没有内置的浮点功能。现在不是很多,但是在严格的代码中差异仍然很大。
整数通常都是你需要的。
答案 3 :(得分:0)
浮点值的范围比整数大得多。此外,它们可以表示小数值。然而,这些特征是以损失精度为代价的。
修改 :(我的意思是精度损失)
整数算术总是精确的,只要一个人不提供导致溢出的操作数,或者除以零
浮点运算不是这种情况,因此在简单运算中使用这些值时,某些值的某些部分可能会丢失。这样做的原因是浮点值提供的巨大范围使得在[相对]小存储(通常为8或16字节)的情况下不可能表示该范围内的所有连续值。
答案 4 :(得分:0)
整数是编程任务中最常用的东西。它们可以表示内存地址。从一个整数到下一个整数很容易计算:只需添加一个。
浮点值用于近似实数。实数是连续数学中最常见的一种。连续数学用于表示现实世界。 (因此术语“实数”。)
浮点值通常不能用作整数。你不能轻易地从X计数到大于X的下一个数字。它们四舍五入,并且不能保证X + 1甚至是与X不同的数字。一般来说,如果它们有两个浮点数可能不同由不同的操作序列产生,即使表达式应该相等。
浮点数是不可预测的,就像现实生活一样。整数是有序且高效的,如计算机。
答案 5 :(得分:0)
在大多数应用中,浮点数可以用整数代替,通过仔细定义需要以什么精度表示的值的范围,并乘以适当的缩放因子。然而,这是额外的开发工作,这只适用于小型嵌入式平台(即小型微控制器),它们无法在可用时间内进行浮点运算。
使用浮点数,只要您保持在可用范围和精度范围内,您就可以在不考虑值的大多数时间表示的情况下离开。不幸的是,这是相当危险的,因为当你离开安全区域时,你可能不会注意到这一点。
答案 6 :(得分:0)
略有不同:整数对数字量有用,而浮点对模拟量很有用。举一个例子,在观察港口的船只时,使用整数来计算船只数量,使用花车代表水位。