Алгоритм перевода целых десятичных чисел в двоичную систему счисления

Пусть Ацд — целое десятичное число, разложим его в ряд по основанию 2. Тогда в его записи в развернутой форме отсутствуют отрицательные степени основания, т.е. числа 2:

Ацд = аn-1×2n-1 + аn-2-2n-2 +... + а1×21 + а0×2°.

На первом шаге разделим число А на основание двоичной системы, т.е. на 2. Частное от деления будет равно:

аn-1×2n-2 + аn-2-2n-3 +... + а1.

а остаток равен а0..

На втором шаге целое частное опять разделим на 2, остаток от деления будет теперь а1.

Если продолжать этот процесс деления, то после n-го шага получим последовательность остатков:

a0, a1, …, an-1.

Легко заметить, что их последовательность совпадает с обратной последовательностью цифр целого двоичного числа, записанного в свернутой форме:

А2 = аn-1аn-2…a1a0.

Таким образом, достаточно записать остатки в обратной последовательности, чтобы получить искомое двоичное число.

Алгоритм перевода целого десятичного числа в двоичное будет следующим:

Последовательно выполнять деление исходного целого десятичного числа и получаемых целых частных на основание системы (на 2) до тех пор, пока не получим частное меньше делителя, т.е. меньше 2.

Получить искомое двоичное число, для чего записать полученные остатки в обратной последовательности.

В качестве примера рассмотрим перевод десятичного числа 19 в двоичную систему, записывая результаты в таблицу:

Десятичное число/целое частное Делитель (основание системы) Остаток Цифры двоичного числа
      a0
      a1
      a2
      a3
      a4

В результате получаем двоичное число:

А2 = а4 а3 а2 а1 а0 = 100112.

Алгоритм перевода десятичных дробей в двоичную систему счисления. Пусть.Адд — десятичная дробь, разложим ее в ряд по основанию 2. Тогда в ее записи в развернутой форме отсутствуют положительные степени основания, т.е. числа 2:

Адд = а-12-1-22-2+…

На первом шаге умножим число Адд на основание двоичной системы, т.е. на 2. Произведение будет равно:

а-1-22-1+…

Целая часть равна а-1, именно это число и является значением первого дробного разряда двоичного числа.

На втором шаге оставшуюся дробную часть опять умножим на 2, получим целую часть, равную а-2, именно это число и является значением второго дробного разряда двоичного числа.

Описанный процесс необходимо продолжать до тех пор, пока в результате умножения мы не получим нулевую дробную часть или не будет достигнута требуемая точность вычислений.

Легко заметить, что последовательность полученных чисел совпадает с последовательностью цифр дробного двоичного числа, записанного в свернутой форме:

А2 = а-1а-2...

Алгоритм перевода десятичной дроби в двоичную будет следующим:

Последовательно выполнять умножение исходной десятичной дроби и получаемых дробей на основание системы (на 2) до тех пор, пока не получим нулевую дробную часть или не будет достигнута требуемая точность вычислений.

Получить искомую двоичную дробь, записав полученные целые части произведения в прямой последовательности.

В качестве примера рассмотрим перевод десятичной дроби 0,75 в двоичную систему, записывая результаты в таблицу:

Десятичная дробь/дробная часть произведения Множитель (основание системы) Целая часть произведения Цифры двоичного числа
0,75     а-1
0,50     а-2
0,00      

В результате получаем двоичную дробь: А2 = 0,а-1а-2 = 0,112.

Перевод чисел из системы с основанием р в систему с основанием q. Перевод чисел из позиционной системы с произвольным основанием р в систему с основанием q производится по алгоритмам, аналогичным рассмотренным выше.

Рассмотрим алгоритм перевода целых чисел на примере перевода целого десятичного числа А10 = 42410 в шестнадцатеричную систему, т.е. из системы счисления с основанием р = 10 в систему счисления с основанием q = 16.

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

Десятичное число/ целое частное Делитель (основание системы) Остаток Цифры двоичного числа числа
      а0
    10 (А) а1
      а2

В результате получаем шестнадцатеричное число:

А16 = а2а1а0 = 1А816.

Рассмотрим теперь алгоритм перевода дробных чисел на примере перевода десятичной дроби А10 = 0,40625 в восьмеричную систему, т.е. из системы счисления с основанием р=10 в систему счисления с основанием q=8.

В процессе выполнения алгоритма необходимо обратить внимание, что все действия необходимо выполнять в исходной системе счисления (в данном случае десятичной), а полученные остатки записать цифрами новой системы счисления (в данном случае восьмеричной).

Десятичная дробь/дробная часть произведения Множитель (основание системы) Целая часть произведения Цифры двоичного числа
0,40625     a-1
0,25     a-2
0,00      

В результате получаем восьмеричную дробь:

A8=a-1a-2=0,328.

Перевод чисел, содержащих и целую и дробную часть, производится в два этапа. Отдельно переводится по соответствующему алгоритму целая часть и отдельно — дробная. В итоговой записи полученного числа целая часть от дробной отделяется запятой.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: