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 + an – ipn – 1 + … + ap + a^p0 В этой сумме каждое слагаемое за исключением последнего обязательно делится на р. Тогда получаем, что последнее слагаемое a0 является остатком от деления исходного числа на p. Разделим число на p, получим сумму разрядных слагаемых со старшей степенью на 1 меньше. Найдя остаток его деления на p, получим значение a1. Продолжая таким образом, получим все значения ai. В примере 12.8 рассмотрены переводы чисел из десятичной системы счисления. Алгоритм перевода Z10 Zp:
Полученные остатки от деления, записанные в порядке, обратном порядку их получения, являются записью числа в системе счисления с основанием p. В примере 12.9 приведены переводы чисел в десятичную систему счисления. Алгоритм перевода Zp Z10 вытекает из способа представления числа в системе счисления с основанием p:
Отдельно рассматривается ситуация переводов Zp Zq, если p и q являются степенями двойки.
Таблицы тетрад, триад и двоичных пар приведены в примере 12.10. При переводе из двоичной системы счисления число разбивается соответственно на группы по 4, 3 или 2 цифры справа налево. При необходимости слева к числу можно приписать нули. Затем производится замена тетрады (триады или пары) на соответствующую цифру (пример 12.14). Перевод Z16 Z8 и Z4 Z16 показан в примерах 12.15 и 12.16. Калькулятор в ОС Windows позволяет выполнить переводы чисел из одной системы счисления в другую. Работает калькулятор с системами счислений, основаниями которых являются 2, 8, 10 и 16. Для осуществления переводов калькулятор должен быть в режиме Программист (пример 12.17). Обозначения для систем счисления: Hex — шестнадцатеричная, Dec — десятичная, Oct — восьмеричная, Bin — двоичная. Для перевода числа с помощью калькулятора нужно:
В режиме Программист калькулятор может работать только с целыми числами. |
Пример 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.
Для записи результата необходимо полученные остатки представить шестнадцатеричными цифрами: 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 в двоичную систему счисления:
Нуль в начале записи числа можно опустить.
Пример 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. Переведите числа в десятичную систему счисления.
- 10012, 11101012, 1000012.
- 21213, 20013, 22134, 23324.
- 4568, 3028, 1658.
- A5416, 67916, FDC16.
2. Переведите числа из десятичной системы счисления в указанную:
- 345, 219, 50270 → Z16.
- 234, 672, 1021 → Z8.
- 92, 131 → Z4.
- 85, 201 → Z3.
- 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. Подготовьте сообщения на одну из перечисленных тем.
- История счета.
- Механические счетные приспособления.
- Использование троичной системы счисления.