Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИНФОР-I_РГУ-нефти7-10.doc
Скачиваний:
52
Добавлен:
24.03.2015
Размер:
966.14 Кб
Скачать

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

Правила перевода чисел из десятичной системы в двоичную вытекают из формулы представления числа. Рассмотрим сначала целое десятичное число N, представленное в виде пока неизвестных нам двоичных цифр:

.

Как найти неизвестные цифры ? Попробуем разделить десятичное числоN на 2. Очевидно, что получится какое-то частное, равное целой части от деления N пополам, и остаток. Последний будет равным 0, если исходное число N было четным, и 1 – если нечетным. А теперь посмотрим, что произойдет при делении на 2 эквивалентного выражения:

.

Очевидно, что первых слагаемых делятся на 2 без остатка, т.к. в их состав входят сомножители из степеней двойки. Единственное слагаемое, которое может дать ненулевой остаток, это – цифра, не превосходящая единицы. Но ведь мы делили на 2 одно и то же, поэтому остаток от деленияN пополам должен совпасть с цифрой . Итак, младшую цифру в двоичном разложении числаN мы установили.

Теперь внимательно приглядимся к частному от нашего первого деления. Обозначим его через :

.

Что произойдет при следующем делении на 2? Очевидно, получится новое частое, а очередной остаток должен совпасть со следующей двоичной цифрой. И так продолжают до тех пор, пока частное после очередного деления на 2 не превратится в нуль. Процесс этот обязательно завершится через конечное число шагов. К этому моменту мы будем знать уже все цифры двоичного разложения исходного числаN.

Пример: N = 96

остаток

остаток

остаток

остаток

остаток

остаток

остаток

Пишем двоичные цифры, начиная с последней:

9610=11000002

Что изменится, если потребуется преобразовать число дробное десятичное число m в двоичную систему? Вспомним формулу разложения:

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

Оказалось, что в целую часть произведения «перебралась» старшая цифра . Отбросим найденную цифру в левой и правой частях равенства:

После очередного умножения на 2 в разряд целых перекочует двоичная цифраи т. д.

Пример: . Выполним действия:

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

На практике удобнее запись процесса перевода дробных чисел вести следующим образом:

875

Возникает вопрос: а всегда ли такой процесс завершится через конечное число шагов? С целыми числами такой проблемы не существовало. Любое целое число после многократного деления пополам, в конце концов, превратится в нуль. С дробями дело обстоит несколько иначе:

Пример:

6

1

0

0

1

1

2

4

8

6

2

Обратите внимание, что этот процесс будет продолжаться бесконечно долго, но периодичность повторяющихся цифр уже установлена:

Этот пример показывает, что не любая конечная десятичная дробь преобразуется в конечную же двоичную. Поэтому некоторые числа в машине могут быть представлены неточно за счет потери «хвоста». Если ЭВМ будет прибавлять 1/10, то может получиться не ожидаемая единица, а число, которое чуть-чуть меньше. В этом таятся подводные камни приближенных вычислений, с которыми иногда приходиться считаться. Но с целыми числами ошибок такого рода не бывает, и результат умножения 2 на 2 в ЭВМ всегда будет равен 4.

Теперь представим себе, что необходимо перевести в двоичную систему смешанное число 96,875. В таких случаях отдельно переводят целую часть числа путем последовательных делений на 2, а затем переводят дробную часть и объединяют полученные результаты:

96,87510=1100000,1112

Десятичная система счисления, с которой начинается наша школьная, а порой и дошкольная математика, относится к позиционным системам счисления. Для нее характерно наличие – числа 10 и цифр , не превосходящих основание. В зависимости от номера позиции, занимаемой в числе, каждая цифра множится на соответствующую степень основания:

1996 = 6•1 + 9•10 + 9•100 + 1•1000

По-другому это можно записать так:

1996 = 1103 + 9102 + 9101 + 6100.

Отсюда также ясно, как записать любое четырехзначное число :

N = a3103 + a2102 + a1101 + a0100,

где a0, a1, a2, a3 десятичные цифры числа, причем цифра a3 не должна быть нулем, иначе число не будет четырехзначным.

Пример 1. Число 534110 запишем в форме многочлена:

534110 = 5 • 103 + 3 • 102 + 4 • 101 + 1 • 100

Пример 2. Число 32110 запишем в двоичной системе счисления. Для этого необходимо разложить число в виде суммы по степеням 2:

32110 = 1• 28+ 1• 26 + 1• 20.

Записываем коэффициенты при степенях двойки (от минимальной нулевой степени к максимальной) справа налево. Поэтому данное число в двоичной системе счис­ления будет иметь вид: 1010000012.

Пример 3. Для того чтобы решить обратную задачу: перевести число из двоичной системы счисления в десятичную, не­обходимо воспользоваться формулой и произвести вычис­ления в десятичной системе счисления.

Число 101001012 перевести в 10-ную систе­му счисления:

101001012 = 1 • 20 + 1 • 22 + 1 • 23 + 1 • 27 = 16510.

Пример 4. Для перевода целого числа из десятичной в двоичную систему счисления необходимо это число делить на двой­ку. Если поделилось без остатка, то пишем 0; если с ос­татком 1, то пишем 1. Это будет последняя цифра в запи­си числа. Например:

25 — 24 = 1 (остаток 1)

25/2 = 12

12 - 12 = 0 (остаток 0) 12/2 = 6

6 — 6 = 0 (остаток 0) 6/2 = 3

3 — 2 = 1 (остаток 1)

3/2 = 1 (остаток от деления числа 25 на 2) — это и будет первая цифра в записи числа 25 в двоичной системе. То есть 2510 = 110012.

Пример 5. Для перевода целого числа из двоичной системы в де­сятичную необходимо цифры умножать на двойку в сте­пени номера позиции (номер позиции начинается с нуля и нумеруется справа налево, а для дробей - слева направо). Например:

110012 = 1 • 20 + 0 • 21 + 0 • 22 + 1 • 23 + 1 • 24 = = 1 + 0 + 0 + 8 +16 = 25.

0,1022=1• 2-1+0• 2-2+1• 2-3 = 0,62510

4,3,2,1,0 — номера позиций цифр в числе — они являют­ся степенями двойки.

Таблица систем счисления

Двоичная

Восьмеричная

Десятичная

Шестнадцатеричная

0

000

0

0

0

1

001

1

1

1

2

010

2

2

2

3

011

3

3

3

4

100

4

4

4

5

101

5

5

5

6

110

6

6

6

7

111

7

7

7

8

1000

10

8

8

9

1001

11

9

9

10

1010

12

10

A

11

1011

13

11

B

12

1100

14

12

C

13

1101

15

13

D

14

1110

16

14

E

15

1111

17

15

F

16

10000

20

16

10

17

10001

21

17

11