如何将十进制转换为二进制?

时间:2014-08-10 03:30:33

标签: math data-representation

如何将十进制数“18.25”转换为二进制?我对小数点感到困惑.25。

2 个答案:

答案 0 :(得分: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顺序不同于我们从下到上遍历的数字!

我希望很清楚。

答案 1 :(得分: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;