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


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

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

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

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

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

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

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

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

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

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

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

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


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




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

Прочитав предыдущий материал, можно сделать вывод, что для представления целого или дробного числа, построенного по правилам позиционной системы счисления, в десятичной форме достаточно лишь записать его системный вид. Вот и шестнадцатеричные числа переводятся в десятичную форму путём их представления в системном виде. Основанием системного вида является, конечно, число 16, а мантиссы стандартных видов содержат десятичные идентификаторы соответствующих шестнадцатеричных цифр (первые десять цифр алфавита шестнадцатеричной системы счисления, естественно, совпадают с соответствующими десятичными). В Примерах 1 — 3 показано изменение представления целых и дробных шестнадцатеричных чисел.

  • 1

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


      Решение. 3716 = 3 × 161 + 7 × 160 = 4810 + 710 = 5510.

      Ответ. 5510.

  • 2

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


      Решение. Следует не забыть, что H — это не цифра, но замена индексу (см. предыдущий параграф).

      FEH = FE16 = 15 × 161 + 14 × 160 = 24010 + 1410 = 25410.

      Ответ. 25410.

  • 3

    • Задача. Получить десятичную репрезентацию дробного шестнадцатеричного числа 1AA,5F.


      Решение. 1AA,5F16 =

      = 1 × 162 + 10 × 161 + 10 × 160 + 5 × 16–1 + 15 × 16–2 =

      = 25610 + 16010 + 1010 + (5/16)10 + (15/256)10 =

      = 426 + (95/256)10 = 426,3710937510.

      Ответ. 426,3710937510.

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

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

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

  • 4

    • Задача. Представить в шестнадцатеричной форме десятичное число 1132.


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

      1132 ÷ 16 = 70 (остаток 12);

      70 ÷ 16 = 4 (остаток 6).

      Шестнадцатеричные идентификаторы десятичных цифр 4 и 6 полностью соответствуют полученным десятичным, шестнадцатеричный идентификатор числа 12 — цифра C. Таким образом, 113210 = 46CH или 113210 = 46C16 (что есть то же самое).

      Ответ. 46C.

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

  • 5

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


      Решение.

      log16184⌋ = 1, 161 = 16, ⌊184 ÷ 16⌋ = 11 (коэффициент, 1110 = B16),
      получен первый стандартный вид 11 × 161 = 176, разность 184 – 176 = 8;

      log168⌋ = 0, 160 = 1, ⌊8 ÷ 1⌋ = 8 (коэффициент, 810 = 816),
      получен второй стандартный вид 8 × 160 = 8, и теперь разность равна, наконец, 8 – 8 = 0.

      Имеем:

      18410 = 11 × 161 + 8 × 160 = B816.

      Ответ. B816.

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

  • 6

    • Задача. Перевести десятичное число 7427 в шестнадцатеричное представление.


      Решение.

      log167427⌋ = 3, 163 = 4096, 7427 – 4096 = 3331;

      log163331⌋ = 2, 162 = 256, 3331 – 256 = 3075;

      log163075⌋ = 2, 162 = 256, 3075 – 256 = 2819;

      log162819⌋ = 2, 162 = 256, 2819 – 256 = 2563;

      log162563⌋ = 2, 162 = 256, 2563 – 256 = 2307;

      log162307⌋ = 2, 162 = 256, 2307 – 256 = 2051;

      log162051⌋ = 2, 162 = 256, 2051 – 256 = 1795;

      log161795⌋ = 2, 162 = 256, 1795 – 256 = 1539;

      log161539⌋ = 2, 162 = 256, 1539 – 256 = 1283;

      log161283⌋ = 2, 162 = 256, 1283 – 256 = 1027;

      log161027⌋ = 2, 162 = 256, 1027 – 256 = 771;

      log16771⌋ = 2, 162 = 256, 771 – 256 = 515;

      log16515⌋ = 2, 162 = 256, 515 – 256 = 259;

      log16259⌋ = 2, 162 = 256, 259 – 256 = 3;

      log163⌋ = 0, 160 = 1, 3 – 1 = 2;

      log162⌋ = 0, 160 = 1, 2 – 1 = 1;

      log161⌋ = 0, 160 = 1, 1 – 1 = 0.

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

      742710 = 163 + 13 × 162 + 3 × 160 = …

      Как видно, мы уже сгруппировали слагаемые с одинаковыми степенями основания. Также мы видим, что в вычислениях отсутствует логарифм, равный единице. Значит, системный вид требуется дополнить слагаемым с нулевой мантиссой и порядком, равным единице, для того, чтобы десятичные идентификаторы всех цифр шестнадцатеричного числа были представлены:

      … = 1 × 163 + 13 × 162 + 0 × 161 + 3 × 160 = …

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

      … = 1D03H.

      Ответ. 1D03.

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

Напомним обобщённый алгоритм представления дробных десятичных чисел в шестнадцатеричной форме. Для такого перевода требуется:

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

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

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

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

В Примерах 7 — 9 демонстрируется перевод в шестнадцатеричную форму различных десятичных дробей.

  • 7

    • Задача. Получить шестнадцатеричный эквивалент десятичного числа 173,875.


      Решение.

      Шаг 1: 17310 = AD16;

      Шаг 2: 0,875 = 875/1000 = 7/8 = 14/16, т. е. знаменатель равен 161, числитель — целое число, значит, исходное десятичное число можно представить конечной шестнадцатеричной дробью;

      Шаг 3: 1410 = E16;

      Шаг 4: 173,87510 = AD,E16.

      Ответ. AD,E.

  • 8

    • Задача. Вывести шестнадцатеричную репрезентацию числа 56,00976562510, округлив число до двести пятьдесят шестых.


      Решение.

      Шаг 1: 5610 = 3816;

      Шаг 2: 0,009765625 = 9765625/(109) = 5/512 = 40/4096. Здесь мы видим, что предложенная в задании десятичная дробь вполне может быть представлена конечной шестнадцатеричной дробью (в последнем равенстве знаменатель равен 4096 = 163 при целом числителе), но задание требует лишь двух знаков после шестнадцатеричной запятой (точки). Поэтому представим полученную дробь в виде 5/512 = 40/4096 = 2,5/256 и округлим числитель до трёх: 2,5 ≈ 3.

      Шаг 3: 310 = 0316, ведь в знаменателе правой части уравнения содержится 256 = 162, что означает наличие двух знаков после запятой (точки) в шестнадцатеричном представлении числа;

      Шаг 4: 56,00976562510 ≈ 38,0316.

      Ответ. 38,0316.

  • 9

    • Задача. Представить в шестнадцатеричной форме число 77,8510, оставив два знака в дробной части шестнадцатеричного числа.


      Решение.

      Шаг 1: 7710 = 4D16;

      Шаг 2: 0,85 = 85/100 = 17/20, знаменатель этой дроби не может быть представлен в виде 16n, n ∈ N, так, чтобы числитель оставался целым числом. Решим уравнение 17/20 = x/256, откуда x = 217,6 ≈ 218;

      Шаг 3: 21810 = DA16;

      Шаг 4: 77,8510 = 4D,DA16.

      Ответ. 4D,DA16.



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


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

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

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



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