Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
системы счисления лаб.doc
Скачиваний:
14
Добавлен:
15.11.2019
Размер:
344.06 Кб
Скачать

Перевод чисел из одной системы счисления в другую

При решении задач с помощью ЭВМ исходные данные обычно задаются в десятичной системе счисления; в этой же системе, как правило, нужно получить и окончательные результаты. Так как в современных ЭВМ данные кодируются в основном в двоичных кодах, то, в частности, возникает необходимость перевода чисел из десятичной в двоичную систему счисления и наоборот. Рассмотрим перевод чисел из одной системы счисления в другую на примерах.

Пример 3.

3.1. Преобразуйте число 56710 из десятичной в двоичную систему.

Решение.

Имеется два способа преобразования десятичных чисел в двоичную систему счисления.

1-й способ. Определяется максимальная степень двойки, такая, чтобы 2 в этой степени было меньше или равно исходному числу. В нашем случае это 9, т.к. 29=512, а 210=1024, что больше начального числа (1024>567). Таким образом, получают число разрядов результата. Оно равно 9+1=10. Поэтому результат будет иметь вид 1ххххххххх, где вместо х могут стоять любые двоичные цифры (0 или 1). Найдем вторую цифру результата. Возведем 2 в степень 9 и вычтем из исходного числа: 567-29=55. Остаток сравним с числом 28=256. Так как 256 > 55, то девятый разряд будет нулем, т.е. результат примет вид 10хххххххх. Рассмотрим восьмой разряд. Так как 27=128 > 55, то и он будет нулевым. Седьмой разряд также оказывается нулевым. Искомая двоичная запись числа принимает вид 1000хххххх. 25=32 < 55, поэтому шестой разряд равен 1 (результат 10001ххххх). Для остатка 55 - 32=23 справедливо неравенство 24=16<23, что означает равенство единице пятого разряда. Действуя аналогично, в результате получается число 1000110111. Число 56710 было разложено по степеням двойки:

567=1*29+0*28+0*27+0*26+1*25+1*24+0*23+1*22 +1*21+1*20

2-й способ. При этом способе перевода чисел используется операция деления в столбик. Разделив число 567 на 2, получим частное 283 и остаток 1. Проведем ту же самую операцию с числом 283. Получим частное 141, остаток 1. Опять делим полученное частное на 2, и так до тех пор, пока частное не станет меньше делителя. Теперь для того, чтобы получить число в двоичной системе счисления, достаточно записать последнее частное, то есть 1, и приписать к нему в обратном порядке все полученные в процессе деления остатки.

Р езультатом является число 1000110111, что соответствует полученному 1-м способом числу.

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

3.2. Преобразуйте число 68204310 в систему счисления с основанием 16.

Решение.

По 2-му способу.

Будем последовательно делить число 68204310 в столбик на 16. Процесс деления заканчивается, когда частное становится строго меньше 16.

С учетом замены числа 10 на A, числа 11 на B получим результат в виде А683В.

3.3. Преобразуйте число 4A3F в систему счисления с основанием 10.

Решение.

Для записи числа 4A3F в десятичной системе счисления воспользуемся полиномом (1).

.

Заменив A на 10, а F на 15, получим .

Для перевода целых чисел из двоичной системы в системы с основанием, равным степеням двойки (8=23 и 16=24), нужно:

  1. данное двоичное число разбить справа налево на группы по n-цифр в каждой (для восьмеричной системы n=3, для шестнадцатеричной n=4);

  2. если в последней левой группе окажется меньше n разрядов, то дополнить ее нулями до нужного числа разрядов;

  3. рассмотреть каждую группу, как n-разрядное двоичное число, и заменить ее соответствующей цифрой в системе счисления с основанием 2n.

Двоично-шестнадцатеричная таблица

2-ная

0000

0001

0010

0011

0100

0101

0110

0111

16-ная

0

1

2

3

4

5

6

7

2-ная

1000

1001

1010

1011

1100

1101

1110

1111

16-ная

8

9

A

B

C

D

E

F

Двоично-восьмеричная таблица

2-ная

000

001

010

011

100

101

110

111

8-ная

0

1

2

3

4

5

6

7

Пример 4.

4.1. Преобразуйте число 10010101 в число восьмеричной системы счисления.

Решение.

1. Разобьем число 10010101 справа налево на группы по 3-цифры в каждой (так как 8=23)

10 010 101.

2. Так как в последней левой группе оказалось меньше 3 разрядов, то дополним ее нулями до нужного числа разрядов

010 010 101.

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

225.

Двоичное число 10010101 в восьмеричной системе счисления имеет вид 225.

4.2. Преобразуйте число 1101010101 в число шестнадцатеричной системы счисления.

Решение.

1. Разобьем число 1101010101 справа налево на группы по 4-цифры в каждой (так как 16=24)

11 0101 0101.

2. Так как в последней левой группе оказалось меньше 4 разрядов, то дополним ее нулями до нужного числа разрядов

0011 0101 0101.

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

355.

Двоичное число 1101010101 в шестнадцатеричной системе счисления имеет вид 355.