use*_*451 94 computer-science numbers representation
由于难以在Google上阅读有关它们的定义,我无法理解定点和浮点数.但是我读过的没有提供一个简单的解释,说明它们到底是什么.我能用例子得到一个简单的定义吗?
Gab*_*abe 128
固定点编号具有为整数部分(小数点左侧的部分)保留的特定位数(或数字)和为小数部分保留的特定位数(小数点右侧的部分)点).无论您的数量有多大或多小,它都会为每个部分使用相同的位数.例如,如果您的定点格式是十进制的,IIIII.FFFFF
那么您可以表示的最大数字将是99999.99999
最小的数字00000.00001
.处理这些数字的每一段代码都必须具有小数点所在的内置知识.
浮点数不会为整数部分或小数部分保留特定的位数.相反,它保留了一批具有一定比特数(称为尾数或有效数字)和一定的位数说那里是数小数位位于(被称为内指数).因此,为指数保留2位数的10位数的浮点数可能代表最大值9.9999999e+50
和最小值0.0000001e-49
.
Vau*_*ato 30
固定点数仅表示小数点后面有固定的位数.浮点数允许小数点后的数字位数不同.
例如,如果您有一种方法可以存储小数点后正好需要四位数的数字,那么它就是固定点.没有这个限制,它是浮点数.
通常,当使用固定点时,程序员实际使用整数,然后假设某些数字超出小数点.例如,我可能想要保持两位精度,因此值100意味着实际意味着1.00,101意味着1.01,12345意味着123.45等.
浮点数是更通用的,因为它们可以以相同的方式表示非常小或非常大的数字,但是对于小数位所在的位置必须有额外的存储有一点小的惩罚.
小智 7
根据我的理解,定点算术是使用整数完成的。其中小数部分以固定的位数存储,或者数字乘以需要的十进制精度位数。
例如,如果12.34
需要存储数字,而我们只需要小数点后两位精度,则将数字乘以100
得到1234
。在对这个数字进行数学运算时,我们会使用这个规则集。将5620
或添加56.20
到此数字将产生6854
data 或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"
Run Code Online (Sandbox Code Playgroud)
浮点数在编程中是一个完全不同的故事。浮点数的当前标准使用类似 23 位的数字数据,8 位的指数和 1 位来表示符号。有关这方面的更多信息,请参阅此 Wikipedia 链接。
Spa*_*rky -7
拨打电话123.456789
浮点可以让您以极高的精度表示几乎所有数字。固定的不太精确,但对于计算机来说更简单。