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

а) 14 б) 29 в) 134 г) 158 е) 1190 ж) 2019

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

Известно, что любое рациональное число можно представить в виде десятичной и обыкновенной дроби. Обыкновенная дробь, то есть дробь вида А/В может быть правильной и неправильной. Дробь называется правильной если А<В и неправильной если А>В.

Если рациональное число представлено неправильной дробью, и при этом числитель дроби делится на знаменатель нацело, то данное рациональное число - число целое, во всех иных случаях возникает дробная часть. Дробная часть зачастую бывает очень длинным числом и даже бесконечным (бесконечная периодическая дробь, например 20/6), поэтому в случае с дробной частью у нас возникает не просто задача перевода одного представления в другое, а перевод с определённой точностью.

Правило точности. Предположим, дано десятичное число, которое в виде десятичной дроби представимо с точностью до N знаков. Для того чтобы соответствующее двоичное число было той же точности, в нём необходимо записать M - знаков, так что бы

2m > 10N

А теперь попробуем получить правило перевода, и для начала рассмотрим пример 5,401

Решение:

Целую часть мы получим по уже известным нам правилам, и она равна двоичному числу 101. А дробную часть разложим по степеням 2.

Шаг 1: 2-2 = 0,25; 0,401 - 0,25 = 0,151. - это остаток.

Шаг 2: Сейчас необходимо степенью двойки представить 0,151. Сделаем это: 2-3 = 0,125; 0,151 - 0,125 = 0,026

Таким образом, исходную дробную, часть можно представить в виде 2-2 +2-3 . То же самое можно записать таким двоичным числом: 0,011. В первом дробном разряде стоит ноль, это потому, что в нашем разложении степень 2-1 отсутствует.

Из первого и второго шагов ясно, что это представление не точное и может быть разложение желательно продолжить. Обратимся к правилу. Оно говорит, что нам нужно столько знаков М чтобы 103 было меньше чем 2М. То есть 1000<2M. То есть в двоичном разложении у нас должно быть не менее десяти знаков, так как 29 = 512 и только 210 = 1024. Продолжим процесс.

Шаг 3: Сейчас работаем с числом 0,026. Ближайшая к этому числу степень двойки 2-6 = 0,015625; 0,026 - 0,015625 = 0,010375 теперь наше более точное двоичное число имеет вид: 0,011001. После запятой уже шесть знаков, но этого пока недостаточно, поэтому выполняем ещё один шаг.

Шаг 4: Сейчас работаем с числом 0,010375. Ближайшая к этому числу степень двойки 27 = 0,0078125;

0,010375 - 0,0078125 = 0,0025625

Шаг 5: Сейчас работаем с числом 0,0025625. Ближайшая к этому числу степень двойки 2-9 = 0,001953125;

0,0025625 - 0,001953125 = 0,000609375

Последний получившийся остаток меньше чем 2-10 и если бы мы желали продолжать приближение к исходному числу, то нам бы понадобилось 2-11, но это уже превосходит требуемую точность, а, следовательно, расчёты можно прекратить и записать окончательное двоичное представление дробной части.

0,401 = 0,011001101

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

Запишем алгоритм преобразования:

Исходные данные алгоритма: Буквой А будем обозначать исходную правильную десятичную дробь записанную в десятичной форме. Пусть эта дробь содержит N знаков.

Алгоритм

Действие 1. Определим количество необходимых двоичных знаков М из неравенства 10N < 2M

Действие 2: Цикл вычисления цифр двоичного представления (цифры после нуля). Номер цифры будем обозначать символом К.

1.  Номер цифры = 1

2.  Если 2-К > А

То в запись двоичного числа добавляем ноль

Иначе

§  в запись двоичного числа добавляем 1

§  А = А - 2-К

3.  К = К + 1

4.  Если К > М

§  то работа алгоритма завершена

§  Иначе переходим на пункт 2.

Переведите десятичные числа в двоичные

а) 3,6 б) 12,0112 в) 0,231 г) 0,121 д) 23, 0091

Вычитание двоичных чисел

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

1

1

0

1

-

1

1

0

=

1

1

1

Первый разряд. 1 - 0 =1. Записываем 1.

Второй разряд 0 -1. Не хватает единицы. Занимаем её в старшем разряде. Единица из старшего разряда переходит в младший, как две единицы (потому что старший разряд представляется двойкой большей степени ) 2-1 =1. Записываем 1.

Третий разряд. Единицу этого разряда мы занимали, поэтому сейчас в разряде 0 и есть необходимость занять единицу старшего разряда. 2-1 =1. Записываем 1.

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

1101 - 110 = 13 - 6 = 7 (111) Верное равенство.

Еще один интересный способ выполнения вычитания связан с понятием дополнительного кода, который позволяет свести вычитание к сложению. Получается число в дополнительном коде исключительно просто, берём исходное число и заменяем в нем нули на единицы, единицы наоборот заменяем на нули и к младшему разряду добавляем единицу. Например, для числа 10010 дополнительный код будет 011011.

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

Пример: 34 - 22 = 12

Запишем этот пример в двоичном виде. 100010 - 10110 = 1100

Дополнительный код числа 10110 будет такой:

01001 + 00001 = 01010.

Тогда исходный пример можно заменить сложением так:

100010 + 01010 = 101100.

Далее необходимо отбросить одну единицу в старшем разряде. Если это сделать то, получим 001100. Отбросим незначащие нули и получим 1100, то есть пример решён правильно

Умножение в двоичной системе счисления

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

Пример. 10101 * 10 = 101010

Проверка.

10101 = 1*24 + 0*23 + 1*22 + 0*21 +1*20 = 16 + 4 + 1 = 21

101010 =1*25 + 0*24 + 1*23 + 0*22 +1*21 +0*20 = 32 + 8 + 2 = 42

21 * 2 = 42

Если мы вспомним, что любое двоичное число разлагается по степеням двойки, то становится ясно, что умножение в двоичной системе счисления легко сводится к умножению на 10 (то есть на десятичную 2), а стало быть, умножение это ряд последовательных сдвигов. Общее правило таково: как и для десятичных чисел умножение двоичных выполняется поразрядно. И для каждого разряда второго множителя к первому множителю добавляется один ноль справа. Пример (пока не столбиком): 1011 * 101

Это умножение можно свести к сумме трёх поразрядных умножений:

1011 * 1 + 1011 * 0 + 1011 * 100 = 1011 +101100 = 110111. В столбик это же самое можно записать так:

1

0

1

1

*

1

0

1

1

0

1

1

0

0

0

0

1

0

1

1

1

1

0

1

1

1

Проверка:

101 = 5 (десятичное)

1011 = 11 (десятичное)

110111 = 55 (десятичное)

5*11 = 55 верное равенство

Замечание: Таблица умножения в двоичной системе состоит только из одной строчки: 1 * 1 = 1

Деление в двоичной системе счисления

Мы уже рассмотрели три действия и думаю уже понятно, что в общем-то действия над двоичными числами мало отличаются от действий над десятичными числами. Разница появляется только в том, что цифр две а не десять, но это только упрощает арифметические операции. Так же обстоит дело и с делением, но для лучшего понимания алгоритм деления разберём более подробно. Пусть нам необходимо разделить два десятичных числа, например 234 разделить на 7. Как мы это делаем.

2

3

4

7

Выделяем справа (от старшего разряда) такое количество цифр, чтобы получившееся число было как можно меньше и в то же время больше делителя. 2 - меньше делителя, следовательно, необходимое нам число 23. Затем делим полученное число на делитель с остатком. Получаем следующий результат:

2

3

4

7

-

2

1

3

2

4

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

Пример: Вычислить 10010111 / 101.

1

0

0

1

0

1

1

1

1

0

1

Начиная со старшего разряда, ищем число, которое первое было бы больше чем делитель. Это четырехразрядное число 1001. Оно выделено жирным шрифтом. Теперь необходимо подобрать делитель выделенному числу. И здесь мы опять выигрываем в сравнении с десятичной системой. Дело в том, что подбираемый делитель это обязательно цифра, а цифры у нас только две. Так как 1001 явно больше 101, то с делителем всё понятно это 1. Выполним шаг операции.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14