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


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

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

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

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

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

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

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

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

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

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

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

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


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


Payeer

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

Как и двоичные, восьмеричные числа переводятся в десятичную форму путём их представления в системном виде. Основанием системного вида является число 8, а мантиссы стандартных видов содержат цифры десятичного алфавита, которые, впрочем, совпадают с соответствующими цифрами восьмеричного. В Примерах 1 и 2 показано изменение представления целых и дробных восьмеричных чисел.

  • 1

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


      Решение. 12748 =

      = 1 × 83 + 2 × 82 + 7 × 81 + 4 × 80 =

      = 110 × 51210 + 210 × 6410 + 710 × 810 + 410 × 110 =

      = 51210 + 12810 + 5610 + 410 = 70010.

      Ответ. 700.

  • 2

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


      Решение. 325,38 =

      = 3 × 82 + 2 × 81 + 5 × 80 + 3 × 8–1 =

      = 310 × 6410 + 210 × 810 + 510 × 110 + 310 × (1/8)10 =

      = 19210 + 1610 + 510 + (3/8)10 = 213,37510.

      Ответ. 213,37510.

    • Не обязательно составлять специальную таблицу степеней числа 8, чтобы потом пользоваться ею в процессе записи системного вида восьмеричного числа. Достаточно помнить, что показатель степени числа 8 — это утроенный показатель степени числа 2. Так, например, 82 = 26. Выходит, что для этих целей вполне подойдёт таблица степеней числа 2, показанная в §5.

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

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

    • Ответить на вопрос "сколько раз потребуется выполнить деление" поможет та же формула, что была применена для двоичных чисел. Основанием логарифма в ней всегда будет основание системы счисления, в представление которой требуется перевести число x, в данном случае 8. Итак, для перевода десятичного числа в восьмеричную форму деление потребуется произвести ⌊log8x⌋ раз.

    • Если для определения всех цифр целой части восьмеричного представления нужно выполнить ⌊log8x⌋ делений на 8, то цифр в целой части восьмеричного числа будет ⌊log8x⌋ + 1, поскольку от каждого деления нужно отбирать остаток, а первой цифрой восьмеричного числа является последнее частное. Напомним, что данные логарифмы имеет смысл считать для ненулевых целых десятичных x.

  • 3

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


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

      229 ÷ 8 = 28 (остаток 5);

      28 ÷ 8 = 3 (остаток 4).

      Получаем восьмеричное число: последнее частное равно 3, остатки (от последнего до первого) — 4, 5, значит, искомое число — 3458.

      Ответ. 345.

Способ второй: системный вид. Любое десятичное число можно представить в системном виде с основанием 8. Для этого вычислим целую часть логарифма исходного числа по основанию 8 и найдём целую часть от деления исходного числа на 8 в степени с показателем в виде полученного числа. Можно считать, что первую цифру конечного представления (цифру в старшем разряде) мы уже видим: она и есть результат деления. Таким образом, один из стандартных видов теперь имеется, и требуется определить следующие. Вычтем из исходного числа то, которое представляется полученным только что стандартным видом, и с этой разностью нужно поступить так же, как с исходным числом. Считать очередную разность требуется до тех пор, пока она не станет равной нулю, поскольку под знаком логарифма нуля быть не может. Все вычисленные таким способом стандартные виды объединяются в системный вид, мантиссы которого и есть цифры искомого восьмеричного числа. В Примере 4 можно видеть, как рассчитываются стандартные виды системного вида и как затем системный вид с основанием 8 помогает получить восьмеричное представление числа.

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

  • 4

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


      Решение. Воспользуемся алгоритмом, позволяющим определить ненулевые стандартные виды системного вида числа по основанию 8:

      log8184⌋ = 2, 82 = 64 (степень основания), ⌊184 ÷ 64⌋ = 2 (коэффициент),
      получен первый стандартный вид 2 × 82 = 128, разность 184 – 128 = 56;

      log856⌋ = 1, 81 = 8 (степень основания), ⌊56 ÷ 8⌋ = 7 (коэффициент),
      получен второй стандартный вид 7 × 81 = 56, и теперь разность равна, наконец, 56 – 56 = 0.

      Имеем:

      18410 = 2 × 82 + 7 × 81 = …

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

      … = 2 × 82 + 7 × 81 + 0 × 80 = …

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

      … = 2708.

      Ответ. 2708.

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

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

  • 5

    • Задача. Перевести десятичное число 209 в восьмеричное представление.


      Решение.

      log8209⌋ = 2, 82 = 64, 209 – 64 = 145;

      log8145⌋ = 2, 82 = 64, 145 – 64 = 81;

      log881⌋ = 2, 82 = 64, 81 – 64 = 17;

      log817⌋ = 1, 81 = 8, 17 – 8 = 9;

      log89⌋ = 1, 81 = 8, 9 – 8 = 1;

      log81⌋ = 0, 80 = 1, 1 – 1 = 0.

      Получение нуля в качестве последней разности означает, что можно вывести системный вид исходного числа по основанию 8. Но сделать это сначала придётся так:

      20910 = 82 + 82 + 82 + 81 + 81 + 80 = …

      Ведь алгоритм показал лишь то, сколько раз упоминается то или иное слагаемое с ненулевой мантиссой! Но пока эти слагаемые ещё могут иметь одинаковые степени основания, а их мантиссы содержат единицы. Сгруппируем слагаемые с равными степенями оснований:

      … = 3 × 82 + 2 × 81 + 1 × 80 = 3218.

      Ответ. 321.

Перевод дробного десятичного числа в восьмеричное представление иногда осложняется имеющей место невозможностью его представления конечной восьмеричной дробью. Как и с двоичными числами, дробное десятичное число можно перевести в конечную восьмеричную дробь только в том случае, если знаменатель дробной части является числом 8 в некоторой натуральной степени, а её числитель представлен при этом целым числом. В противном случае перевод придётся выполнять приближённо, округляя значение до заданной величины.

Обобщим предложенный в §5 алгоритм, адаптировав его для перевода в восьмеричное представление. Для представления десятичной дроби в восьмеричной форме требуется:

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

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

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

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

    • Процесс, описанный на втором этапе алгоритма, осуществляется в ходе сокращения дроби или, наоборот, при умножении её числителя и знаменателя на одно и то же число. Этот этап, фактически, позволяет определить, можно ли осуществить представление дробного десятичного числа конечной восьмеричной дробью, т. е. существует ли такая дробь, знаменатель которой выражался бы как 8n, n ∈ N, при том, что её числитель — целое число. Отметим также, что далее в тексте этого шага говорится о необходимости округления лишь в том случае, если числитель не является целым.

В Примерах 6 и 7 демонстрируется перевод из десятичной формы в восьмеричную дробей, одну из которых можно записать в виде конечной восьмеричной дроби, а другую — нет.

  • 6

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


      Решение.

      Шаг 1: 010 = 08;

      Шаг 2: 0,25 = 25/100 = 1/4 = 2/8, т. е. знаменатель равен 81, числитель — целое число, следовательно, исходное число можно представить конечной восьмеричной дробью;

      Шаг 3: 210 = 28;

      Шаг 4: 0,2510 = 0,28.

      Ответ. 0,2.

  • 7

    • Задача. Перевести десятичное число 157,03 в восьмеричную форму с точностью до шестьдесят четвёртых.


      Решение.

      Шаг 1: 15710 = 2358;

      Шаг 2: 0,03 = 3/100 , знаменатель этой дроби не может быть представлен в виде 8n, n ∈ N, так, чтобы числитель оставался целым. Придётся решить уравнение 3/100 = x / (82), откуда x = 1,92 ≈ 2;

      Шаг 3: 210 = 028, ведь в знаменателе правой части уравнения содержится 64 = 82, что означает наличие двух знаков после запятой (точки) в восьмеричном представлении числа;

      Шаг 4: 157,0310 = 235,028.

      Ответ. 235,02.



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


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

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

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



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