§12 Кодирование числовых данных. Понятие системы счисления. Перевод чисел из одной позиционной системы счисления в другую.

§ 12. кодирование числовых данных

12.1. Понятие системы счисления

Первые компьютеры называли ЭВМ — электронно-вычислительная машина. Их основным назначением было производство расчетов, для ко­торых необходимы числовые данные. Существует большое количество спо­собов представления числовых дан­ных (пример 12.1). С древних вре­мен люди использовали специальные значки для обозначения чисел. Такие значки называют цифрами.

Система счисления — способ запи­си числа с помощью набора условных знаков, называемых цифрами.

Системы счисления бывают пози­ционными и непозиционными. В по­зиционной системе счисления число­вое значение цифры зависит от той позиции, которую цифра занимает в записи числа. В непозиционной систе­ме счисления цифра всегда имеет одно и то же значение. В наше время человечество исполь­зует в основном десятичную систе­му счисления. В ней для записи чи­сел используется 10 цифр: 0, 1, … 9. Число 10 является основанием деся­тичной системы счисления.

Любое число в десятичной системе счисления можно записать как сумму разрядных слагаемых (пример 12.2). Числа 1, 10, 100… являются разрядны­ми единицами. Каждая разрядная еди­ница может быть записана в виде 10n.

Аналогичную запись числа можно получить, если вместо 10 как основания системы счисления взять произ­вольное число p ( p G 1). Разрядными единицами становятся степени осно­вания системы счисления. Для записи числа в системе счисления с основани­ем p понадобится p цифр. Обычно ис­пользуют первые p цифр десятичной системы счисления: 0, 1, …, (p 1). Например, для четверичной системы счисления это будут цифры 0, 1, 2, 3 (пример 12.3).

В общем виде число Z можно запи­сать следующим образом:

Zp = anPn + an-1 p – 1 ++ a1p1 + aop0, где число p — основание системы счис­ления, коэффициенты an, an _ 1, … a1, a0 — цифры числа, значения pn, pn – 1, …, p1, p0 — разрядные единицы.

Основание системы счисления при­нято указывать как нижний индекс в десятичной системе. Например, де­сятичное число 1443 можно запи­сать как 144310 или как 5A316, 26438, 101101000112 (пример 12.4). Для деся­тичного числа индекс 10 можно не ука­зывать.

Десятичная система счисления яв­ляется примером позиционной систе­мы счисления (пример 12.5). Приме­ром непозиционной системы счисле­ния является римская.

В настоящее время используются позиционные системы счисления с основаниями 2, 3, 8, 10, 16. При рабо­те с компьютерами чаще всего используются шестнадцатеричная, восьме­ричная, двоичная системы счисления.

Двоичная система счисления по­зволяет записывать числа с помощью двух цифр — 0 и 1. Запись числа в двоичной системе счисления является двоичным кодом числа.

В восьмеричной системе счисления используются цифры от 0 до 7. Ее применение для компьютеров обуслов­лено тем фактом, что в одном байте 8 бит. С помощью восьмеричных чисел записывают коды чисел и машинных команд. Сейчас восьмеричную систе­му счисления практически полностью вытеснила шестнадцатеричная.

В шестнадцатеричной системе счис­ления используются 16 цифр: 10 цифр из десятичной системы счисления — 0…9 — и 6 букв латинского алфави­та — A, B, C, D, E, F (пример 12.6). Система счисления с основанием 16 широко используется в компьютерной документации и при написании про­грамм непосредственно в машинном коде. Например, для записи адресов команд, цветовых констант.

12.2. Перевод чисел из одной позиционной системы счисления в другую

Любое число имеет значение и фор­му представления. Значение числа за­дает количественную меру и опреде­ляется его отношением к значениям других чисел («больше», «меньше», «равно»). Форма представления числа определяет способ записи числа с помо­щью предназначенных для этого цифр. Значение числа не зависит от способа его представления: число с одним и тем же значением может быть записа­но по-разному (пример 12.7). Системы счисления определяют форму пред­ставления чисел, а поскольку их мно­го, то возникает вопрос о возможности и способах перехода от одной формы представления числа к другой. В даль­нейшем будем рассматривать только позиционные системы счисления.

Перевод числа из системы счисле­ния с основанием p в систему счисле­ния с основанием q обозначают как Zp Zq. Непосредственный перевод вы­полнять непросто, поэтому чаще всего рассматривают переводы Zp Zr Zq, где обычно r = 10. То есть для выпол­нения переводов нужно уметь пере­водить числа в десятичную систему счисления и из десятичной в систему счисления с другим основанием.

Для получения алгоритма перево­да числа из десятичной системы счис­ления в систему счисления с другим основанием рассмотрим запись числа в виде суммы разрядных слагаемых: Zp = anPn + anipn – 1 ++ ap + a^p0

В этой сумме каждое слагаемое за исключением последнего обязательно делится на р. Тогда получаем, что по­следнее слагаемое a0 является остатком от деления исходного числа на p. Разде­лим число на p, получим сумму разряд­ных слагаемых со старшей степенью на 1 меньше. Найдя остаток его деления на p, получим значение a1. Продолжая та­ким образом, получим все значения ai.

В примере 12.8 рассмотрены пере­воды чисел из десятичной системы счисления.

Алгоритм перевода Z10 Zp:

  • Разделить нацело исходное чис­ло на основание новой системы счис­ления p и найти остаток от деления. Это будет цифра a0.
  • Частное от деления снова разде­лить нацело на p с выделением остатка. Продолжать до тех пор, пока частное от деления не окажется меньше p.

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

В примере 12.9 приведены переводы чисел в десятичную систему счисления. Алгоритм перевода Zp Z10 вытекает из способа представления числа в системе счисления с основанием p:

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

Отдельно рассматривается ситуа­ция переводов Zp Zq, если p и q являются степенями двойки.
В этом случае в качестве промежуточной системы счисления удобно выбирать двоичную.
Перевод из системы счис­ления с основанием степени двойки в двоичную основан на том, что каждой цифре в этой системе счисления соответствует группа двоичных цифр:

  • шестнадцатеричной цифре соот­ветствует группа из четырех двоичных цифр (16 = 24), называемая тетрадой;
  • восьмеричной цифре соответствует группа из трех двоичных цифр (8 = 23), называемая триадой;
  • четверичной цифре соответствует пара двоичных цифр (4 = 22).

Таблицы тетрад, триад и двоичных пар приведены в примере 12.10.
Для перевода числа из системы счисления с основанием 16 в двоичную систему счисления каждую цифру числа за­меняют соответствующей тетрадой (пример 12.11). При переводе из вось­меричной системы счисления цифры заменяются триадами (пример 12.12), а из четверичной — парами (при­мер 12.13).

При переводе из двоичной системы счисления число разбивается соответ­ственно на группы по 4, 3 или 2 циф­ры справа налево. При необходимости слева к числу можно приписать нули. Затем производится замена тетрады (триады или пары) на соответствую­щую цифру (пример 12.14). Перевод Z16 Z8 и Z4 Z16 показан в приме­рах 12.15 и 12.16.

Калькулятор в ОС Windows позво­ляет выполнить переводы чисел из одной системы счисления в другую. Ра­ботает калькулятор с системами счис­лений, основаниями которых являют­ся 2, 8, 10 и 16. Для осуществления переводов калькулятор должен быть в режиме Программист (пример 12.17). Обозначения для систем счисления: Hex — шестнадцатеричная, Dec — десятичная, Oct — восьмеричная, Bin — двоичная. Для перевода числа с помощью калькулятора нужно:

  1. Выбрать основание системы счисления исходного числа.
  2. Набрать число.
  3. Результат отобразится сразу для всех систем счисления.

В режиме Программист калькуля­тор может работать только с целыми числами.

Пример 12.1. Способы записи чисел:

У первобытного человека орудием счета были преимущественно пальцы. С их помощью можно было считать до 5, а если взять две руки, то и до 10. В древние времена люди ходили босиком. Поэтому они могли пользоваться для счета пальцами как рук, так и ног.
Известны народы, у которых единицами счета были не пальцы, а их фаланги.

Непозиционной системой счисления является славянская, в которой вместо цифр использовались буквы алфавита. Чтобы отличать буквы от цифр, над буквами с числовым значением писался специальный знак — титло.

Пример 12.2. Запись числа 5973 в виде суммы разрядных слагаемых в де­сятичной системе счисления:

5973 = 5 • 1000 + 9 • 100 + 7 • 10 + 3 = = 5 • 103 + 9 • 102 + 7 • 101 + 3 • 100.

Пример 12.3. Запись числа 123024 в виде суммы разрядных слагаемых в четверичной системе счисления:

12302 = 1 • 44 +2 • 43 + 3 • 42 + 0 • 41 + 2 • 40.

Пример 12.4. Запись числа 144310 в разных системах счисления:

5А316 = 5 • 162 +А • 161 + 3 • 160 = 5 • 256 + + 10 • 16 + 3 = 1280 + 160 + 3 = 1443 26438 = 2 • 83 + 6 • 82 + 4 • 81 + 3 • 80 = = 2 • 512 + 6 • 64 + 4 • 8 + 3 = 1024 + + 384 + 32 + 3 = 1443 101101000112 = 1 • 210 + 0 • 29 + 1 • 28 + + 1 • 27 + 0 • 26 + 1 • 25 + 0 • 24 + + 0 • 23 + 0 • 22 + 1 • 21 + 1 • 20 = 1 * 1024 + 0 + 1 * 256 + 1 • 128 + 0 + 1 • 32 + 0 + 0 + 0 + 1 * 2 + 1 = 1024 + 256 +128 + 32 + 2 + 1 = 1443

Пример 12.5. Запись числа.

В записи числа 111 первая единица обозначает сотни, вторая — десятки, а третья — единицы (числовое значение — сто одиннадцать).

В записи числа III каждая цифра I имеет значение единицы (числовое зна­чение — три).

Из истории известно, что человек применял системы счисления с разны­ми основаниями. В Китае долго пользо­вались пятеричной системой счисления. Племена майя считали в двадцатеричной системе счисления. Шестидесяте­ричную систему счисления использова­ли в Вавилоне. Напоминанием об этой системе счисления сегодня является деление минуты на 60 секунд, часа — на 60 минут, а угла — на 360 градусов.

В основе счета дюжинами лежит две- надцатеричная система счисления, ко­торая используется до сих пор: в году 12 месяцев, на циферблате 12 часов. Для обозначения цифр в двенадцатеричной системе, кроме 10 цифр десятичной си­стемы счисления, использовались еще два значка для обозначения чисел 10 и 11. В разные времена и в разных стра­нах использовали: для 10 — T (англ. ten), D (лат. decem), X (римское 10); для 11 — E (англ. eleven) или O (фр. onze). Можно использовать буквы латинского алфавита — А(10) и В(11). Кроме того, иногда для обозначения 10 используют перевернутую двойку (g), для 11 — пе­ревернутую тройку (g).

Пример 12.6. Числа в шестнадцате­ричной системе счисления:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, А, B, C, D, E, F, 10, 11 … 19, 1A, 1B … 1F, 20 … 29, 2A … 2F, 20 … 99, 9A, 9B, 9C, 9D, 9E, 9F, A0, A1 … FE, FF, 100…

Пример 12.7. Запись чисел в разных системах счисления.

Пример 12.8. Перевод чисел из деся­тичной системы счисления.

Действия по алгоритму перевода чи­сел из десятичной системы счисления обычно представляют «лесенкой», т. е. следующим образом:

В примере реализован перевод числа 342 в восьмеричную систему счисле­ния. Результат — 5268.

  1. Перевести число 762 в шестнадца­теричную систему счисления:49 = 1100012
  2. Перевести число 49 в двоичную систему счисления:

Для записи результата необходимо полученные остатки представить шест­надцатеричными цифрами: 10 = A16, 15 = F16. Результат 762 = 2FA16

Пример 12.9. Перевод чисел в деся­тичную систему счисления:

110012 = 1 • 24 + 1 • 23 + 0 • 22 + + 0 • 21 + 1 • 20 = 16 + 8 + 0 + 0 + 1 = 2510;

30458 = 3 • 83 + 0 • 82 + 4 • 81 + 5 • 80 =3 • 512 + 0 + 32 + 5 = 157310;

A3D16 = A • 162 + 3 • 161 + D • 160 =10 • 256 + 3 • 16 + 13 = 262110

Дробные числа можно переводить аналогично:

12,35 = 1 • 51 + 2 • 50 + 3 • 5-1 = 5 + 2 + 3 = 7 + 0,6 = 7,610.

Пример 12.10. Таблица тетрад, три­ад и двоичных пар.

Пример 12.11. Перевод числа из шестнадцатеричной системы счисления в двоичную:

Пример 12.12. Перевод числа 3628 в двоичную систему счисления:

Нуль в начале записи числа можно опустить.
Ответ: 111100102.
Пример 12.13. Перевод числа 32024 в двоичную систему счисления:

Пример 12.14. Перевод чисел из двоичной системы счисления (знак ′ отделяет тетрады, триады или пары).
В шестнадцатеричную:

1100110102 = 0001’1001’1010 = 19A16

В восьмеричную:

110110101112 = 011’011’010’111 = 33278

В четверичную:

101101112 = 10’11’01’11 = 23134

Пример 12.15. Перевод числа C3616 в восьмеричную систему счисления.

Сначала переведем число в двоич­ную систему счисления, затем разобьем его на триады и получим восьмерич­ную запись: C5616 = 1100 0101 01102 = = 110’001’010’110 = 61268.

Пример 12.16. Перевод числа 231034 в шестнадцатеричную систему счисле­ния.

Переведем число в двоичную систему счисления, затем разобьем его на тетрады и получим шестнадцатеричную запись: 231034 = 10 11 01 00 112 = 0010’1101′ 0011 = 2D316.

Пример 12.17. Перевод числа 61228 с помощью калькулятора.

 

1. Что такое система счисления?
2. Какими бывают системы счисления?
3. Как перевести число в десятичную систему счисления?
4. Как перевести число из десятичной системы счисления?
5. Для чего используются триады и тетрады при переводе чисел из одной системы счисления в другую?

Упражнения

1. Переведите числа в десятичную систему счисления.

  1. 10012, 11101012, 1000012.
  2. 21213, 20013, 22134, 23324.
  3. 4568, 3028, 1658.
  4. A5416, 67916, FDC16.

2. Переведите числа из десятичной системы счисления в указанную:

  1. 345, 219, 50270 → Z16.
  2. 234, 672, 1021 → Z8.
  3. 92, 131 → Z4.
  4. 85, 201 → Z3.
  5. 85, 129, 311 → Z2.

3. Выполнение перевода «лесенкой» можно осуществить в Excel. Откройте файл с примером 12.8. Необходимые формулы можно посмотреть в режиме показа формул (Ctrl + ~). Используйте пример для перевода чисел из упражнения 2.

4*. Найдите в Excel справку по функциям ДЕС, ДВ.В.ДЕС, ВОСЬМ.В.ДЕС и др. Ис-пользуйте эти функции для проверки правильности выполнения перевода чисел в упражнениях 1 и 2.

5. Осуществите перевод чисел между указанными системами счисления:6. Определите, в каком порядке следует осуществлять перевод числа в следующие системы счисления: Z10 → Z2 → Z8 → Z16 и Z4 → Z16 → Z10. Ответ обоснуйте.
7. Запишите минимальное и максимальное.

1 Пятизначные числа в четверичной системе счисления.

2 Четырехзначные числа в восьмеричной системе счисления.

3*Трехзначные числа в двенадцатеричной системе счисления.

Получите десятичные представления записанных чисел. Сделайте выводы.
8. Запишите число, следующее за 348, 223, 345, 11112, CF16.
9. Запишите число, предшествующее 547, 304, 10012.

10. Решите задачи.

1. Найдите наименьшее из чисел А, В, С и D, записанных в различных системах счисления, если А = 10234, В = 4716, С = 6910, D = 10010102.

2. В системе счисления с некоторым основанием p число 5810 записывается как 213p. Найдите это основание.

3. Укажите все основания систем счисления, в которых запись числа 17 оканчивается на 2.

4. К записи натурального числа в восьмеричной системе счисления справа приписали два нуля. Во сколько раз увеличилось число? Ответ запишите в десятичной системе счисления.

5*. В саду 100p фруктовых деревьев. Из них 34p яблони, 25p груш и 5p вишен. Какая система счисления используется при подсчете количества деревьев?

11. Подготовьте сообщения на одну из перечисленных тем.

  1. История счета.
  2. Механические счетные приспособления.
  3. Использование троичной системы счисления.

 

Проверь себя

Выбор тем