ответ

3

Если двоичное число является целым числом без цели, оно будет бесконечным (положительным или отрицательным). Как вы можете представить бесконечное число в десятичной форме? Я думаю, что это .

else, если двоичное число является числом с плавающей точкой, поздравляем. Во многих стандартах числа с плавающей точкой (например, IEEE 754) мантисса представлена ​​двоичным паттерном, в котором старший бит имеет значение 1/2, второй бит имеет значение 1/4 и т. Д. Таким образом, вы можете преобразовать его в десятичную, аккумулируя каждый бит один за другим слева.

Например, у вас есть незавершенная двоичная скороговоркой сказать

10111011101110111011 .......

преобразовать в десятичную просто накапливают их

* 1/2 + * 1/4 + * 1/8 + * 1/16 + * 1/32 + * 1/64 + * 1/128 + * 1/256 ........

пока вы не получите достаточной точности.

1

Если у вас есть «повторяющееся десятичной» в базе 2, и вы знаете, что повторив часть его, можно превратить его в точную рационального числа в р/д обозначения (где р и q являются целыми числами). Затем вы можете использовать деление, чтобы преобразовать это число в обычную десятичную нотацию , чтобы столько цифр точности, сколько вы хотите. (В некоторых случаях вы даже можете записать точное десятичное значение.)

Первым шагом является разделение двоичного числа на его повторяющиеся и не повторяющиеся части. На самом деле мы хотим три вещи: неповторяющуюся часть, первое вхождение повторяющегося блока цифр, и длину повторяющегося блока цифр. Предположим, например, что число равно 1.0001100110011 ... (двоичный), , где последний 0011 повторяется бесконечно. Мы можем разбить это следующим образом: Не повторяющаяся часть равна 1.0 (двоичная), Первое вхождение повторяющегося блока составляет 0,00011 (двоичный), , а длина повторяющегося блока - четыре двоичных разряда.

Повторяющаяся часть двоичного числа является геометрической прогрессией и может быть оценен с использованием стандартной формулы для такой серии:

а + а * г + а * R^2 + а * г^3 + ... = a/(1 - r).

Чтобы применить эту формулу для повторяющихся цифр, значение является просто значением первого наступления повторяющегося блока. Если повторение часть имеет п двоичных разрядов, соотношение R в формуле составляет 1/2^п и 1/(1 - г) = (2^п)/(2^n - 1).

Для примера 1.00011011011 ... (двоичный), из повторяющейся части мы имеем с = 0,00011 (двоичный) = 3/32 и п = 4, так что 1/(1 - г) = (2^4)/(2^4 - 1) = 16/15. Поэтому

/(1 - г) = (3/32) * (16/15) = 3/30 = 1/10,

, который можно записать в виде 0,1 (десятичное). Не повторяющаяся часть, конечно, равна 1 (десятичная), поэтому

1.00011011011 ... (двоичный) = 1 + 0,1 (десятичный) = 1,1 (десятичный).

В этом примере десятичное представление является конечным и точным. Существует много повторяющихся двоичных дробей, для которых, где нет такого десятичного представления, например,

0,01010101 ... (двоичный) = 1/3 = 0,33333 ... (десятичный).

В таких случаях вы должны либо решить округлить после некоторого количества десятичных цифр, либо найти и описать повторяющийся шаблон десятичных цифр.