Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Binary 如何计算误差小于(0.01)的21.36的二进制等价物_Binary - Fatal编程技术网

Binary 如何计算误差小于(0.01)的21.36的二进制等价物

Binary 如何计算误差小于(0.01)的21.36的二进制等价物,binary,Binary,可能重复: 如何计算误差小于(0.01)的21.36的二进制等价物 我已经将21转换为二进制10101,将36转换为二进制100100,但现在我将如何继续,请帮助一些人 分数部分不应转换为数字本身,而应转换为分数。将36转换为二进制与将0.36转换为二进制不同 将分数转换为二进制的工作原理是相同的,但不是使用1、2、4、8等,而是使用1/2、1/4、1/8等 代表0.36: 0 times 1/2 (0.5) 1 times 1/4 (0.25), leaves 0.11 0 times 1/

可能重复:

如何计算误差小于(0.01)的21.36的二进制等价物


我已经将21转换为二进制10101,将36转换为二进制100100,但现在我将如何继续,请帮助一些人

分数部分不应转换为数字本身,而应转换为分数。将36转换为二进制与将0.36转换为二进制不同

将分数转换为二进制的工作原理是相同的,但不是使用1、2、4、8等,而是使用1/2、1/4、1/8等

代表0.36:

0 times 1/2 (0.5)
1 times 1/4 (0.25), leaves 0.11
0 times 1/8 (0.125)
1 times 1/16 (0.0625), leaves 0.0475
1 times 1/32 (0.03125), leaves 0.01625
1 times 1/64 (0.015625), leaves 0.000625
这将使您低于0.01,因此接近21.36的数字的完整双精度表示为:

10101.010111

十进制数字的精确值为21.359375。

分数部分不应转换为数字本身,而应转换为分数。将36转换为二进制与将0.36转换为二进制不同

将分数转换为二进制的工作原理是相同的,但不是使用1、2、4、8等,而是使用1/2、1/4、1/8等

代表0.36:

0 times 1/2 (0.5)
1 times 1/4 (0.25), leaves 0.11
0 times 1/8 (0.125)
1 times 1/16 (0.0625), leaves 0.0475
1 times 1/32 (0.03125), leaves 0.01625
1 times 1/64 (0.015625), leaves 0.000625
这将使您低于0.01,因此接近21.36的数字的完整双精度表示为:

10101.010111

十进制数字的精确值为21.359375。

在这种情况下,停在1/64有效,但一般不起作用。如果,对于某些x,从正在进行的剩余中减去了2到1/2p的幂,那么当前剩余可能几乎是1/2p。例如,对于1/64,余数可能是1/128+1/256+1/512+…,可以是1/64以下的任何数字。所以残留物可能会超过0.01。@EricPostChil:不要在特定的位置停止,当残留物足够小时停止。计算更多的零位是没有意义的,直到潜在的剩余足够小,当你知道实际的剩余。我的观点是答案应该明确说明停止标准。正如目前所写,它没有;指示代词“that”没有明确的先行词,也不清楚。我建议你编辑它。@Guffa如果我们把.36转换成二进制,它就像010110101。。。。但实际答案是(小数部分)010111,但我们如何得出原始答案还不清楚,如果您清除了这一点,那么它将非常有用。@SoumyaBiswas:将0.36转换为二进制将得到(前20位)01011100001001111。您只需要前六位数字(010111)就可以从0.36降到0.01以下。在这种情况下,以1/64停止工作,但一般不起作用。如果,对于某些x,从正在进行的剩余中减去了2到1/2p的幂,那么当前剩余可能几乎是1/2p。例如,对于1/64,余数可能是1/128+1/256+1/512+…,可以是1/64以下的任何数字。所以残留物可能会超过0.01。@EricPostChil:不要在特定的位置停止,当残留物足够小时停止。计算更多的零位是没有意义的,直到潜在的剩余足够小,当你知道实际的剩余。我的观点是答案应该明确说明停止标准。正如目前所写,它没有;指示代词“that”没有明确的先行词,也不清楚。我建议你编辑它。@Guffa如果我们把.36转换成二进制,它就像010110101。。。。但实际答案是(小数部分)010111,但我们如何得出原始答案还不清楚,如果您清除了这一点,那么它将非常有用。@SoumyaBiswas:将0.36转换为二进制将得到(前20位)01011100001001111。您只需要前六位数字(010111)就可以从0.36降到0.01以下。投票后重新打开,因为IEEE 754格式根本不是这个问题的答案。提供的可疑重复链接与我的问题没有任何关系。如果一个人有与我在这里发布的相同的问题,并访问该参考链接,他将无法从那里获得任何指导或帮助,因此我请求使这个问题成为现实。投票赞成“关闭”的成员,请解释我将如何从您提到的重复链接中获得答案,并解释过程。此问题特别要求一些内容(“分数二进制”的含义),这些内容可以作为IEEE754问题答案的一部分来回答,但到目前为止尚未回答。我也觉得在没有尾数、隐藏位、非规范性……投票重新开放等复杂因素的情况下回答这个问题是有意义的,因为IEEE 754格式根本不是这个问题的答案。提供的可疑重复链接与我的问题毫无关系。如果一个人有与我在这里发布的相同的问题,并访问该参考链接,他将无法从那里获得任何指导或帮助,因此我请求使这个问题成为现实。投票赞成“关闭”的成员,请解释我将如何从您提到的重复链接中获得答案,并解释过程。此问题特别要求一些内容(“分数二进制”的含义),这些内容可以作为IEEE754问题答案的一部分来回答,但到目前为止尚未回答。我也觉得在没有尾数、隐藏位、非规范化等复杂因素的情况下回答这个问题是有意义的。。。