Системы счисления
Система счисления — это способ записи чисел с помощью заданного набора специальных знаков (цифр).
Существуют позиционные и непозиционные системы счисления.
В непозиционных системах вес цифры (т.е. тот вклад, который она вносит в значение числа) не зависит от ее позиции в записи числа. Так, в римской системе счисления в числе ХХХII (тридцать два) вес цифры Х в любой позиции равен просто десяти.
В позиционных системах счисления вес каждой цифры изменяется в зависимости от ее положения (позиции) в последовательности цифр, изображающих число. Например, в числе 757,7 первая семерка означает 7 сотен, вторая – 7 единиц, а третья – 7 десятых долей единицы.
Сама же запись числа 757,7 означает сокращенную запись выражения
700 + 50 + 7 + 0,7 = 7•102 + 5•101 + 7•100 + 7•10-1 = 757,7.
Любая позиционная система счисления характеризуется своим основанием.
Основание позиционной системы счисления — это количество различных знаков или символов, используемых для изображения цифр в данной системе.
За основание системы можно принять любое натуральное число — два, три, четыре и т.д. Следовательно, возможно бесчисленное множество позиционных систем: двоичная, троичная, четверичная и т.д. Запись чисел в каждой из систем счисления с основанием q означает сокращенную запись выражения
an-1 qn-1 + an-2 qn-2+... + a1 q1 + a0 q0 + a-1 q-1 +... + a-m q-m,
где ai – цифры системы счисления; n и m – число целых и дробных разрядов, соответственно.
Например:
В каждой системе счисления цифры упорядочены в соответствии с их значениями: 1 больше 0, 2 больше 1 и т.д.
Продвижением цифры называют замену её следующей по величине.
Продвинуть цифру 1 значит заменить её на 2, продвинуть цифру 2 значит заменить её на 3 и т.д. Продвижение старшей цифры (например, цифры 9 в десятичной системе) означает замену её на 0. В двоичной системе, использующей только две цифры – 0 и 1, продвижение 0 означает замену его на 1, а продвижение 1 – замену её на 0.
|
Целые числа в любой системе счисления порождаются с помощью Правила счета [44]:
Для образования целого числа, следующего за любым данным целым числом, нужно продвинуть самую правую цифру числа; если какая-либо цифра после продвижения стала нулем, то нужно продвинуть цифру, стоящую слева от неё.
Применяя это правило, запишем первые десять целых чисел
- в двоичной системе: 0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001;
- в троичной системе: 0, 1, 2, 10, 11, 12, 20, 21, 22, 100;
- в пятеричной системе: 0, 1, 2, 3, 4, 10, 11, 12, 13, 14;
- восьмеричной системе: 0, 1, 2, 3, 4, 5, 6, 7, 10, 11.
Кроме десятичной широко используются системы с основанием, являющимся целой степенью числа 2, а именно:
- двоичная (используются цифры 0, 1);
- восьмеричная (используются цифры 0, 1,..., 7);
- шестнадцатеричная (для первых целых чисел от нуля до девяти используются цифры 0, 1,..., 9, а для следующих чисел — от десяти до пятнадцати – в качестве цифр используются символы A, B, C, D, E, F).
Полезно запомнить запись в этих системах счисления первых двух десятков целых чисел:
|
|
Из всех систем счисления особенно проста и поэтому интересна для технической реализации в компьютерах двоичная система счисления.
Двоичная система, удобная для компьютеров, для человека неудобна из-за ее громоздкости и непривычной записи.
Перевод чисел из десятичной системы в двоичную и наоборот выполняет машина. Однако, чтобы профессионально использовать компьютер, следует научиться понимать слово машины. Для этого и разработаны восьмеричная и шестнадцатеричная системы.
Числа в этих системах читаются почти так же легко, как десятичные, требуют соответственно в три (восьмеричная) и в четыре (шестнадцатеричная) раза меньше разрядов, чем в двоичной системе (ведь числа 8 и 16 – соответственно, третья и четвертая степени числа 2).
Перевод восьмеричных и шестнадцатеричных чисел в двоичную систему очень прост: достаточно каждую цифру заменить эквивалентной ей двоичной триадой (тройкой цифр) или тетрадой (четверкой цифр).
Например:
Чтобы перевести число из двоичной системы в восьмеричную или шестнадцатеричную, его нужно разбить влево и вправо от запятой на триады (для восьмеричной) или тетрады (для шестнадцатеричной) и каждую такую группу заменить соответствующей восьмеричной (шестнадцатеричной) цифрой.
Например,
Как перевести целое число из десятичной системы в любую другую позиционную систему счисления?
При переводе целого десятичного числа в систему с основанием q его необходимо последовательно делить на q до тех пор, пока не останется остаток, меньший или равный q–1. Число в системе с основанием q записывается как последо-вательность остатков от деления, записанных в обратном порядке, начиная с последнего.
|
Пример: Перевести число 75 из десятичной системы в двоичную, восьмеричную и шестнадцатеричную:
Ответ: 7510 = 1 001 0112 = 1138 = 4B16.
Как пеpевести пpавильную десятичную дpобь в любую другую позиционную систему счисления?
Пpи переводе правильной десятичной дpоби в систему счисления с основанием q необходимо сначала саму дробь, а затем дробные части всех последующих произведений последовательно умножать на q, отделяя после каждого умножения целую часть пpоизведения. Число в новой системе счисления записывается как последовательность полученных целых частей пpоизведения.
Умножение пpоизводится до тех поp, пока дpобная часть пpоизведения не станет pавной нулю. Это значит, что сделан точный пеpевод. В пpотивном случае пеpевод осуществляется до заданной точности. Достаточно того количества цифp в pезультате, котоpое поместится в ячейку.
Пример: Перевести число 0,35 из десятичной системы в двоичную, восьмеричную и шестнадцатеричную:
Ответ: 0,3510 = 0,010112 = 0,2638 = 0,5916.
Как пеpевести число из двоичной (восьмеpичной, шестнадцатеpичной) системы в десятичную?
При переводе числа из двоичной (восьмеричной, шестнадцатеричной) системы в десятичную надо это число представить в виде суммы степеней основания его системы счисления.
Примеpы:
Сводная таблица переводов целых чисел из одной системы счисления в другую
Рассмотрим только те системы счисления, которые применяются в компьютерах — десятичную, двоичную, восьмеричную и шестнадцатеричную.
Для определенности возьмем произвольное десятичное число, например 46, и для него выполним все возможные последовательные переводы из одной системы счисления в другую.
Порядок переводов определим в соответствии с рисунком:
На этом рисунке использованы следующие обозначения:
- в кружках записаны основания систем счисления;
- стрелки указывают направление перевода;
- номер рядом со стрелкой означает порядковый номер соответствующего примера в сводной таблице 4.1.
Например: означает перевод из двоичной системы в шестнадцатеричную, имеющий в таблице порядковый номер 6.
Сводная таблица переводов целых чисел
Таблица 4.1.
Как производятся арифметические операции в позиционных системах счисления?
Рассмотрим основные арифметические операции: сложение, вычитание, умножение и деление. Правила выполнения этих операций в десятичной системе хорошо известны — это сложение, вычитание, умножение столбиком и деление углом. Эти правила применимы и ко всем другим позиционным системам счисления. Только таблицами сложения и умножения надо пользоваться особыми для каждой системы.
Сложение
Таблицы сложения легко составить, используя Правило Счета.
Сложение в двоичной системе
![]() | Сложение в восьмеричной системе
![]() |
Сложение в шестнадцатиричной системе
При сложении цифры суммируются по разрядам, и если при этом возникает избыток, то он переносится влево.
Пример 1. Сложим числа 15 и 6 в различных системах счисления.
Шестнадцатеричная: F16+616
![]() | Ответ: 15+6 = 2110 = 101012 = 258 = 1516. Проверка. Преобразуем полученные суммы к десятичному виду: 101012 = 24 + 22 + 20 = 16+4+1=21, 258 = 2*81 + 5*80 = 16 + 5 = 21, 1516 = 1*161 + 5*160 = 16+5 = 21. |
Пример 2. Сложим числа 15, 7 и 3.
Шестнадцатеричная: F16+716+316
![]() | Ответ: 5+7+3 = 2510 = 110012 = 318 = 1916. Проверка: 110012 = 24 + 23 + 20 = 16+8+1=25, 318 = 3*81 + 1*80 = 24 + 1 = 25, 1916 = 1*161 + 9*160 = 16+9 = 25. |
Пример 3. Сложим числа 141,5 и 59,75.
Ответ: 141,5 + 59,75 = 201,2510 = 11001001,012 = 311,28 = C9,416
Проверка. Преобразуем полученные суммы к десятичному виду:
11001001,012 = 27 + 26 + 23 + 20 + 2-2 = 201,25
311,28 = 3*82 + 1•81 + 1*80 + 2*8-1 = 201,25
C9,416 = 12*161 + 9*160 + 4*16-1 = 201,25
Вычитание
Пример 4. Вычтем единицу из чисел 102, 108 и 1016
Пример 5. Вычтем единицу из чисел 1002, 1008 и 10016.
Пример 6. Вычтем число 59,75 из числа 201,25.
Ответ: 201,2510 – 59,7510 = 141,510 = 10001101,12 = 215,48 = 8D,816.
Проверка. Преобразуем полученные разности к десятичному виду:
10001101,12 = 27 + 23 + 22 + 20 + 2–1 = 141,5;
215,48 = 2*82 + 1*81 + 5*80 + 4*8–1 = 141,5;
8D,816 = 8*161 + D*160 + 8*16–1 = 141,5.
Упражнения
4.6. В какой системе счисления 21 + 24 = 100?
Решение. Пусть x — искомое основание системы счисления. Тогда 100x = 1 · x2 + 0 · x1 + 0 · x0, 21x = 2 · x1 + 1 · x0, 24x = 2 · x1 + 4 · x0. Таким образом, x2 = 2x + 2x + 5 или x2 - 4x - 5 = 0. Положительным корнем этого квадратного уравнения является x = 5.
Ответ. Числа записаны в пятеричной системе счисления.
4.7. В какой системе счисления справедливо следующее:
- а) 20 + 25 = 100;
- б) 22 + 44 = 110?
4.8. Десятичное число 59 эквивалентно числу 214 в некоторой другой системе счисления. Найдите основание этой системы.
4.9. Переведите числа в десятичную систему, а затем проверьте результаты, выполнив обратные переводы:
а) 10110112; | е) 5178; | л) 1F16; |
б) 101101112; | ж) 10108; | м) ABC16; |
в) 0111000012; | з) 12348; | н) 101016; |
г) 0,10001102; | и) 0,348; | о) 0,А416; |
д) 110100,112; | к) 123,418; | п) 1DE,C816. |
4.10. Переведите числа из десятичной системы в двоичную, восьмеричную и шестнадцатеричную, а затем проверьте результаты, выполнив обратные переводы:
а) 12510; б) 22910; в) 8810; г) 37,2510; д) 206,12510.
4.11. Переведите числа из двоичной системы в восьмеричную и шестнадцатеричную, а затем проверьте результаты, выполнив обратные переводы:
а) 1001111110111,01112; | г) 1011110011100,112; |
б) 1110101011,10111012; | д) 10111,11111011112; |
в) 10111001,1011001112; | е) 1100010101,110012. |
4.12. Переведите в двоичную и восьмеричную системы шестнадцатеричные числа:
а) 2СE16; б) 9F4016; в) ABCDE16; г) 1010,10116; д) 1ABC,9D16.
4.13. Выпишите целые числа:
- а) от 1011012 до 1100002 в двоичной системе;
- б) от 2023 до 10003 в троичной системе;
- в) от 148 до 208 в восьмеричной системе;
- г) от 2816 до 3016 в шестнадцатеричной системе.
4.14. Для десятичных чисел 47 и 79 выполните цепочку переводов из одной системы счисления в другую: