Math 具有小数部分的数字的十进制到二进制转换

Math 具有小数部分的数字的十进制到二进制转换,math,binary,numbers,decimal,data-conversion,Math,Binary,Numbers,Decimal,Data Conversion,如何用二进制表示500.2。我想知道转换方法。我知道如何转换没有点数的数字,但如果点数出现在任何数字中,我不知道如何转换。这是一个关于它的好网页。我不知道它是否回答了你的问题: 编辑 从这个链接 用法:您可以通过在按钮栏中选择数字的二进制表示形式来转换数字,其他字段将立即更新。或者,您可以在相应的文本字段中输入二进制数、十六进制数或十进制表示形式,然后按return键更新其他字段。为了更容易发现最终的舍入误差,在转换为双精度后将显示选定的浮点数 特殊值:您可以输入单词“Infinity”、“

如何用二进制表示500.2。我想知道转换方法。我知道如何转换没有点数的数字,但如果点数出现在任何数字中,我不知道如何转换。

这是一个关于它的好网页。我不知道它是否回答了你的问题:

编辑 从这个链接

用法:您可以通过在按钮栏中选择数字的二进制表示形式来转换数字,其他字段将立即更新。或者,您可以在相应的文本字段中输入二进制数、十六进制数或十进制表示形式,然后按return键更新其他字段。为了更容易发现最终的舍入误差,在转换为双精度后将显示选定的浮点数

特殊值:您可以输入单词“Infinity”、“-Infinity”或“NaN”以获得IEEE-754的相应特殊值。请注意有两种零:+0和-0

转换:IEEE-754数字的值计算为: 符号*2指标*尾数 符号存储在第32位。通过减去127,可从位24-31计算指数。尾数(也称为有效位或分数)存储在位1-23中。将值为1.0的不可见前导位(即,它未实际存储)放在前面,然后位23的值为1/2,位22的值为1/4等。因此,尾数的值介于1.0和2之间。如果指数达到-127(二进制00000000),则前导1不再用于启用逐渐下溢

下溢:如果指数具有最小值(全部为零),则遵循非规范化值的特殊规则。指数值设置为2-126,而尾数的“不可见”前导位不再使用。尾数的范围现在是[0:1]

注意:转换器用于将非规范化指数显示为2-127和非规范化尾数范围[0:2]。这实际上与上述值相同,在指数和尾数之间移动了一个因子2。然而,这让人困惑,因此发生了变化(2015-09-26)

舍入错误:并非每个十进制数都可以精确地表示为浮点数。输入“0.1”并检查其二进制表示形式时可以看到这一点,根据最后一位的不同,二进制表示形式可能稍小,也可能稍大


其他表示法:十六进制表示法只是打印为十六进制的位字符串的整数值。不要将其与0xab.12ef样式的真正十六进制浮点值混淆。

引用

十进制到二进制的转换:

任何十进制数都可以转换为其等价的二进制数。 对于整数,可通过连续除以2获得转换 并跟踪余数,而对于分数部分,则 转换受2的连续乘法和 生成的整数的轨迹

您案例中的转换过程如下所示:-

500/2 = 250 Remainder = 0
250/2 = 125 Reaminder = 0
125/2 = 62  Remainder = 1
62/2  = 31  Remainder = 0
31/2  = 15  Remainder = 1
15/2  =  7  Remainder = 1
7/2   =  3  Remainder = 1
3/2   =  1  Remainder = 1
1/2   =  0  Remainder = 1
因此,求值顺序是,最上面的余数将转到LSB,最下面的余数将转到MSB

因此,(500)2=111110100

现在,关于分数部分,我们将如下所示:-

// separate the integer generated(0 or 1) on the left hand side of the fraction/dot,
// and ensure only fractional part between 0 and 1 are allowed in the next step
0.2 * 2 = 0.4 ,  so, keep 0 in the bag
0.4 * 2 = 0.8 ,  so, keep 0 in the bag
0.8 * 2 = 1.6 ,  so, keep 1 in the bag, and next put 0.6 to the next step
0.6 * 2 = 1.2,   so, keep 1 in the bag, and next put 0.2 to the next step
0.2 * 2 = 0.4,   so, keep 0 in the bag...
// and so on as we see that it would continue(repeating) the same pattern.
当我们发现级数无穷大时,我们只能考虑到某些小数点的精度。

因此,如果我假设所需精度为点后4位,那么答案将是数字在袋子中的放置顺序,即

(0.2)2=0.00110011。。。 = 0.0011.... =0.0011


现在,综合起来,(500.2)2=111110100.0011。

这并没有回答OP的问题。OP要求手动进行十进制到二进制的转换!感谢您的出色回答,关于如何用二进制表示500.2。这毕竟是个问题。@Drew我不知道您是否在挖苦人。但这个回答对OP提供了一个边缘帮助。请注意我想知道co的陈述转换方法.500.2只是一个例子。不管是什么,这个问题太宽泛了。如果是评论,这个答案最好。@BhargavRao好的,这是我在另一个房间做的关于这个的粘贴:“他问如何表示它。那个家伙向他展示了如何表示它。这个问题没有语言标签。对我来说,这个问题已经得到了回答”@Drew OP明确提到他需要这个方法。无论如何,这也是一个VLQ答案。OP没有解释任何关于链接的内容。(如果链接死了-答案死了).但是,让我们在这里结束这次会议。我确实理解你的想法。干杯,祝你好运。哇,这是一个很好的答案。现在我不得不收回我关于这个问题的简历。:/@BhargavRao-谢谢,但是,我真的不知道这样一个简单的问题的答案是否值得赞赏!无论如何,谢谢。:)问题可能很简单,但这是我所付出的努力n更重要的答案。这一努力得到了一张赞成票。一定要编辑问题和标题,让“谷歌”观众更容易看到。干杯,祝你一切顺利。@BhargavRao-谢谢,已经这么做了。我感谢你对答案的欣赏:)