Учитывая двоичное число, которое повторяется, например, 0. (0011) или 0.0 (101), как можно преобразовать его в десятичное?
Это можно решить (т. Е. Можно определить точное рациональное количество) в двоичном виде точно так же, как и в десятичном. В десятичном виде, если у нас есть, скажем, 0.(567)
, и мы хотим определить точное рациональное количество, которое оно представляет, мы просто берем 567
в качестве числителя и 999
(число, которое имеет n
9
s, где n
- количество цифр в повторяющейся группе) в качестве нашего знаменателя:
0.(567) = 567/999 = 189/333 = 63/111
, который сейчас находится в самых низких условиях. Этот процесс является перегонкой полного результата бесконечной геометрической серии , упомянутого @Rick Regan .
В двоичном коде мы делаем то же самое, за исключением того, что вместо n
9
s в качестве нашего знаменателя мы хотим n
1
s (так как 1
является самой старшей цифрой в двоичном виде). Так например
0.(0011) = 0011 / 1111 =(in decimal) 3/15 = 1/5
Если у вас есть цифры перед повторяющейся группой, просто сделайте некоторую арифметику вокруг этого вычисления: например, 0.0(101)
- это всего лишь 0.(101)
, деленное на 2. Последний - 101 / 111
, или 5/7
, поэтому 0.0(101)
is 5/14
.