如何将十进制数“18.25”转换为二进制?我被小数点 0.25 弄糊涂了。
问问题
862 次
2 回答
2
就像你反复将这个 18 除以 2 来形成它的十进制表示一样,你需要做相反的事情来将数字的小数部分转换为二进制。您需要将该数字的小数部分重复乘以 2,直到它给出一个独立的数字。第一次乘法的结果(乘积)将作为第二次乘法的输入,并一直持续到我们达到一个停滞的稳定整数值。
因此,在您的情况下,18.25 的小数部分是 0.25。
让我们先将它乘以 2。
0.25*2=0.5 // 0
0.5*2=1.0 // 1
当我们最终将产品作为独立整数出现时,Hunt 结束。
此外,18 的十进制到二进制转换是(10010)base 2
. 正如问题中提到的那样,您可以轻松地计算出这一点。
因此,18.25 的十进制表示将是(10010.01)base 2
--- 看,顺序为 01,与我们从下到上遍历的数字不同!
我希望很清楚。
于 2014-08-10T03:47:15.880 回答
0
with recursiveCTE(num) as (
select &EnterNum num from dual
union all
select trunc(num/2) from recursiveCTE
where trunc(num/2)> 0
),
ref as (SELECT num, mod(num, 2) bin_remainder from recursiveCTE)
select reverse(to_char(replace(wm_concat(bin_remainder), ','))) binary_num from ref;
于 2016-06-16T06:05:22.927 回答