由于难以在Google上全面了解定点和浮点数的定义,因此我无法理解它们。但是,我所读的书中没有一个对它们的真实含义提供了足够简单的解释。我可以用示例得到一个简单的定义吗?
由于难以在Google上全面了解定点和浮点数的定义,因此我无法理解它们。但是,我所读的书中没有一个对它们的真实含义提供了足够简单的解释。我可以用示例得到一个简单的定义吗?
Answers:
定点数具有为整数部分(小数点左边的部分)保留的特定位数(或位数),以及为小数部分(小数点右边的部分)保留的特定位数。点)。无论您的数字大小,它的每个部分将始终使用相同的位数。例如,如果定点格式为十进制,IIIII.FFFFF
则可以表示的最大数字为99999.99999
,而最小的非零数字为00000.00001
。处理此类数字的每一位代码都必须具有小数点在哪里的内置知识。
浮点数不会为整数部分或小数部分保留特定位数。相反,它保留了一批具有一定比特数(称为尾数或有效数字)和一定的位数说那里是数小数位位于(被称为内指数)。因此,占用10位数字并保留2位数字用于指数的浮点数可能表示的最大值9.9999999e+50
和最小的非零值0.0000001e-49
。
-9.9999999e+50
。
00000.00001
?我希望能看到00000.00000
。另外,您是否有参考资料更详细地介绍定点数?
固定点数仅表示小数点后有固定位数。浮点数允许小数点后的位数变化。
例如,如果您有一种存储数字的方式,该数字要求小数点后恰好需要四位数,那么它就是定点数。没有那个限制,它就是浮点数。
通常,使用定点时,程序员实际上使用整数,然后假设某些数字超出了小数点。例如,我可能希望保持两位数的精度,因此值100实际表示1.00,101表示1.01,12345表示123.45,依此类推。
浮点数是更通用的用途,因为它们可以用相同的方式表示非常小的数字或很大的数字,但是对于必须保留小数点后缀的位置会有一点损失。
据我了解,定点算法是使用整数完成的。其中小数部分以固定的位数存储,或者该数字乘以需要多少位数的十进制精度。
例如,如果12.34
需要存储数字,并且我们只需要小数点后两位的精度,则将该数字乘以100
得到1234
。在对该数字进行数学运算时,我们将使用此规则集。在这个数字上加上5620
或56.20
会得到6854
数据或68.54
。
如果要计算定点数的小数部分,请使用模(%)操作数。
12.34(伪代码):
v1 = 1234 / 100 // get the whole number
v2 = 1234 % 100 // get the decimal number (100ths of a whole).
print v1 + "." + v2 // "12.34"
浮点数是编程中完全不同的故事。当前的浮点数标准使用类似23位的数字,数字8位的指数,和1,但符号。有关更多信息,请参见此Wikipedia链接。
取号码123.456789
浮点数使您可以非常精确地表示大多数数字。固定的精度较差,但对计算机而言更简单。