§5. Связь двоичного и десятичного представлений числа
ИнфоКонсалтинг
Образовательный сервис


Новости сайта

02.10.2017 С наступающим Днём Учителя, дорогие наши учителя!

24.08.2017 Успейте подобрать репетитора на новый учебный год! Это можно сделать на соответствующей странице нашего сайта, притом по любому предмету, в любом городе России и с учётом индивидуальных требований.

Сервис предоставлен Ассоциацией репетиторов.

Найти репетитора

Отправить заявку

24.08.2017 Страницы сайта переиндексированы для системы поиска ИнфоКонсалтинг.

Поиск по нашему сайту

04.10.2016 В разделе "К экзамену" появилось решение задачи 23 демо-версии КИМ ЕГЭ по информатике от 2017 г.

Задача 23 демо-версии 2017 г. по информатике

04.10.2016 В разделе "К экзамену" появилось решение задачи 26 демо-версии КИМ ЕГЭ по информатике от 2017 г.

Задача 26 демо-версии 2017 г. по информатике


§5. Связь двоичного и десятичного представлений числа


Payeer

§5. Связь двоичного и десятичного представлений числа

В предыдущем параграфе мы почти представили целое двоичное число в десятичной форме, потому что получили его системный вид, который, как мы договорились в §2, всегда имеет десятичную форму по определению.

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

  • 1

    • Задача. Перевести в десятичную форму двоичное число 1101.


      Решение. 11012 =

      = 1 × 23 + 1 × 22 + 0 × 21 + 1 × 20 =

      = 1 × 23 + 1 × 22 + 1 × 20 =

      = 810 + 410 + 110 = 1310.

      Ответ. 13.

    • Десятичное число как форма представления двоичного числа образовано суммой чисел, являющихся названиями разрядов двоичного числа, в которых присутствуют единицы.

Дробное двоичное число переводится в десятичную форму точно так же. Следует, правда, обратить внимание, что стандартные виды, содержащие цифры из дробной части числа, имеют отрицательные порядки, — см. Пример 2.

  • 2

    • Задача. Перевести в десятичную форму число 10111,012.


      Решение. 10111,012 =

      = 1 × 24 + 0 × 23 + 1 × 22 + 1 × 21 + 1 × 20 + 0 × 2–1 + 1 × 2–2 =

      = 1 × 24 + 1 × 22 + 1 × 21 + 1 × 20 + 1 × 2–2 =

      = 1610 + 410 + 210 + 110 + (1/4)10 = 23,2510.

      Ответ. 23,25.

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

Показатель степениСтепеньПоказатель степениСтепеньПоказатель степениСтепень
01664124096
127128138192
2482561416384
3895121532768
4161010241665536
53211204817131072

Табл. 5.1. Степени числа 2

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

Чтобы перевести целое десятичное число в двоичную форму, можно воспользоваться одним из трёх способов, являющихся, впрочем, разновидностями одного и того же механизма.

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

    • Можно заранее определить, сколько раз потребуется выполнить деление. Если исходное ненулевое десятичное число обозначить буквой x, то деление придётся произвести ⌊log2x⌋ раз, и тогда мы получим, наконец, долгожданную единицу в последнем частном.

  • 3

    • Задача. Перевести число 1910 в двоичное представление.


      Решение. Будем делить исходное число на 2 до тех пор, пока не получим единицу в частном (деление придётся выполнить ⌊log219⌋ = 4 раза):

      19 ÷ 2 = 9 (остаток 1);

      9 ÷ 2 = 4 (остаток 1);

      4 ÷ 2 = 2 (остаток 0);

      2 ÷ 2 = 1 (остаток 0).

      Получаем двоичное число: последнее частное равно 1, остатки (от последнего до первого) — 0, 0, 1, 1, значит, искомое число — 100112.

      Ответ. 10011.

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

Способ второй: системный вид. Любое десятичное число можно представить в виде суммы степеней числа 2, т. е. чисел из табл. 5.1, при этом ни одну степень (ни одно число таблицы) нельзя повторять более одного раза. Все числа могут быть только просуммированы (вычитание не допускается). Далее необходимо получить системный вид с основанием 2. Коэффициенты (мантиссы) стандартных видов и будут соответственными цифрами двоичного числа. Из Примера 4 можно увидеть, как системный вид с основанием 2 помогает получить двоичное представление числа.

  • 4

    • Задача. Перевести число 2510 в двоичное представление.


      Решение. Представим число 2510 в виде суммы неповторяющихся степеней числа 2:

      2510 = 1610 + 810 + 110 = …

      Запишем каждое слагаемое в стандартном виде, получая неполный системный вид:

      … = 1 × 24 + 1 × 23 + 1 × 20 = …

      Укажем пропущенные стандартные виды, для которых мантиссы равны нулю:

      … = 1 × 24 + 1 × 23 + 0 × 22 + 0 × 21 + 1 × 20 = …

      Теперь цифры искомого двоичного числа уже видны. Вот и ответ:

      … = 110012.

      Ответ. 11001.

Способ третий: вычисление логарифмов. Вычислим целую часть логарифма исходного числа по основанию 2, возведём 2 в степень с показателем в виде полученного числа и вычтем из исходного числа. В данном случае целая часть логарифма — это старший показатель степени числа 2 в системном виде. Теперь проделаем то же с полученной разностью: вычислим целую часть логарифма разности по основанию 2. Опять возведём 2 в степень, показатель которой только что определён, и из разности вычтем 2 в этой степени. Этим мы определили очередное слагаемое системного вида. Будем вычислять логарифм и вычитать до тех пор, пока в качестве разности оказывается ненулевое число. После всех проведённых вычислений для системного вида определены все ненулевые слагаемые, и можно далее пользоваться предыдущим способом с того этапа, на котором определён неполный системный вид по основанию 2. Вычисления с использованием логарифма показаны в Примере 5.

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

  • 5

    • Задача. Перевести число 4410 в двоичное представление.


      Решение.

      log244⌋ = 5, 25 = 32, 44 – 32 = 12;

      log212⌋ = 3, 23 = 8, 12 – 8 = 4;

      log24⌋ = 2, 22 = 4, 4 – 4 = 0.

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

      4410 = 25 + 23 + 22 =

      = 1 × 25 + 0 × 24 + 1 × 23 + 1 × 22 + 0 × 21 + 0 × 20 = 1011002.

      Ответ. 101100.

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

    • Если знаменатель обыкновенной дроби выражается числом 2n, n ∈ N, то показатель n определяет, сколько знаков после двоичной запятой (точки) будет в числе.

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

  • 6

    • Задача. Можно ли представить число 10,510 конечной двоичной дробью?


      Решение. Попробуем выразить дробную часть числа так, чтобы знаменатель был представлен обыкновенной дробью со знаменателем 2n, где n ∈ N:

      0,5 = 5/10 = 1/2, знаменатель дроби равен 21 и числитель (равный единице) — целое число. Из этого следует, что исходное число можно выразить конечной двоичной дробью. В дробной части этого двоичного числа имеется один знак.

  • 7

    • Задача. Можно ли представить число 1,310 конечной двоичной дробью?


      Решение. Попробуем выразить дробную часть числа так, чтобы знаменатель был представлен обыкновенной дробью со знаменателем 2n, где n ∈ N:

      0,3 = 3/10, знаменатель дроби не представляется выражением 2n, n ∈ N, или после подобного выражения числитель не будет являться целым числом. Из этого следует, что исходное число нельзя выразить конечной двоичной дробью.

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

отдельно перевести в двоичное представление целую часть десятичного числа;

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

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

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

В Примере 8 показана реализация описанного алгоритма.

  • 8

    • Задача. Перевести в двоичную форму десятичное число 5,375.


      Решение. Дробная часть числа приводится к виду 0,375 = 375/1000 = 3/8. Как видно, знаменатель обыкновенной дроби имеет вид 2n, n ∈ N (ведь n = 3), значит, исходное число можно представить конечной двоичной дробью. Выполним перевод в такое представление по алгоритму.

      Шаг 1: 510 = 1012;

      Шаг 2: 310 = 0112, ведь вид знаменателя дроби 3/8, полученной во время проверки на возможность представления исходного числа конечной двоичной дробью, означает, что после двоичной запятой последуют три знака (ведь 8 = 23). Поэтому число 112, выведенное только что, придётся выровнять нулём вправо при записи окончательного ответа, т. е. получить 0112;

      Шаг 3: 5,37510 = 101,0112.

      Ответ. 101,011.

    • Если бы в Примере 8 мы сократили бы дробь 375/1000 не до конца, а получили, скажем, 6/16, то всё число было бы представлено в виде 101,01102 как содержащее 4 двоичных цифры после запятой (точки). Но нуль на конце двоичной дроби означает то же самое, что и на конце десятичной дроби: он не нужен (ведь он не является значащей цифрой). Важно сокращать дроби, пока это возможно, и поэтому на втором шаге алгоритма говорится о том, что нужно удалять все крайние правые нули в двоичном выражении дробной части. Но только после её выравнивания вправо нулями!

Если дробное десятичное число нельзя перевести в двоичное представление конечной дробью, то необходимо решить, сколько знаков оставить после двоичной запятой (часто в условиях задач уже сказано, какую точность требуется соблюдать). Количество знаков после запятой определяет показатель степени числа 2 в знаменателе десятичной дроби. Далее осуществляют решение по алгоритму, показанному ниже. Итак, для этого нужно:

отдельно перевести в двоичное представление целую часть десятичного числа;

решить уравнение-пропорцию, левой частью которого является дробная часть исходного десятичного числа, а правой — отношение нового числителя x к 2n, n ∈ N, где n — показатель, определяющий точность (количество знаков после запятой (точки) в двоичном представлении числа). Округлить полученное значение числителя до целого, и, если после округления числитель совпадёт со знаменателем, то необходимо увеличить целую часть, полученную на предыдущем этапе, на единицу (выбрать следующее за полученным двоичное число, см. Принцип цикличности построения целых чисел в §2), а дальнейшее выполнение алгоритма прекратить (при этом дробная часть числа будет содержать нули во всех разрядах, что означает получение целого результата, см. Пример 10);

перевести полученное округлённое значение x числителя в двоичную форму. Дописать к этому числу слева (т. е. выровнять его вправо) столько нулей, чтобы двоичное представление содержало всё необходимое количество знаков, а затем зачеркнуть в полученном числе все крайние правые нули, если они есть;

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

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

Из Примеров 9 и 10 можно увидеть, как выполняется этот алгоритм. При этом в Примере 10 можно наблюдать случай, при котором дробное десятичное число приближённо равно целому в двоичной форме.

  • 9

    • Задача. Перевести в двоичную форму десятичное число 4,05 с точностью до 5 знаков после двоичной запятой (точки).


      Решение. Дробная часть числа представляется как 0,05 = 5/100 = 1/20. Понятно, что знаменатель обыкновенной дроби не приводится к виду 2n, n ∈ N так, чтобы числитель остался целым, значит, исходное число нельзя представить конечной двоичной дробью. Как видно, формулировка задания относительно точности вполне оправдана! Выполним перевод в такое представление по алгоритму.

      Шаг 1: 410 = 1002;

      Шаг 2: 1/20 = x / (25), т. е. 1/20 = x/32, 20 x = 32, x = 1,6 ≈ 2.

      Шаг 3: 210 = 000102, ведь показатель степени знаменателя равен 5, что означает наличие после двоичной запятой пяти знаков. Поэтому число 102, выведенное только что, придётся выровнять тремя нулями вправо при записи окончательного ответа, т. е. получить 000102. А ещё мы удалим в этой записи 0 справа, так что ответ будет содержать лишь четыре знака после запятой;

      Шаг 4: 4,0510 ≈ 100,00012.

      Ответ. 100,0001.

    • В Примере 9 получены только 4 знака после запятой (точки) в двоичном представлении — вместо требуемых пяти. Это возможно, если пятым знаком оказался нуль. Ведь все крайние правые нули дробной части можно не записывать! Как в Примере 10, в котором дробная часть в ответе отсутствует вообще.

  • 10

    • Задача. Перевести в двоичную форму десятичное число 4,99 с точностью до 2 знаков после двоичной запятой (точки).


      Решение. Дробная часть числа представляется как 0,99 = 99/100. Понятно, что знаменатель обыкновенной дроби не приводится к виду 2n, n ∈ N так, чтобы числитель остался целым, значит, исходное число нельзя представить конечной двоичной дробью. Как видно, формулировка задания относительно точности вполне оправдана! Выполним перевод в такое представление по алгоритму.

      Шаг 1: 410 = 1002;

      Шаг 2: 99/100 = x / (22), т. е. 99/100 = x/4, 100 x = 396, x = 3,96 ≈ 4. Мы видим, что x как числитель дроби в своём приближённом значении стал равным знаменателю, из чего следует необходимость увеличения целой части двоичного числа, полученной на шаге 1, на единицу и прекращение каких-либо дальнейших вычислений. Таким образом, целая часть становится равной 1012, а дробная часть числа фактически отсутствует.

      Ответ. 101.



Поддержите нас!


Обращаем Ваше внимание:

Ваш браузер недостаточно эффективен. Установите достойный браузер здесь.

Все анонсы? / ?



Индекс цитирования
CY, Page Rank
Яндекс.Метрика