40. Системы счисления - основа различных кодов
Кодирование информации о численности чего-либо привело к созданию систем счисления [36].
Десятичная система счисления – способ кодирования натуральных чисел, причем основание системы счисления проистекало от количества пальцев на руках. История знает и другие системы – двадцатеричная – по числу пальцев на руках и ногах. Римские цифры – другой, более наглядный способ. Один палец – I, пятерня – V, две пятерни – Х, пятьдесят – L, сто – С, тысяча – М. С помощью букв обозначали цифры и греки, и русские, и грузины. Индийцы и арабы придумали нуль и позиционную систему счисления.
Основной единицей кодирования информации в настоящее время является бит – один двоичный разряд, который может быть либо нулем (0), либо единицей (1). Подавляющее большинство ЭВМ используют двоичное представление информации. В начале эры компьютеров битами кодировали числа и команды. Потом оказалось, что такое кодирование пригодно для записи, хранения и переработки практически любой информации: изображений (видеоинформации), звука, музыки, фильмов и т.д.
Группы в три бита называют триадами, группы из четырех битов – тетрады. Наиболее часто сейчас говорят о байтах – группах из восьми бит. Два байта – это уже слово. Килобайт – это 210 бит – 1024 бита. Мегабайт – это 220 бит. Гигабайт – это 230 бит. Терабайт – это 240.
Двоичная система счисления.
В двоичной системе счисления основание 2: используется только два символа: 0,1. Поэтому арифметика очень простая: 0+0=0, 0+1=1, 1+0=1, 1+1=10 (0 и перенос в следующий разряд). Запись 11011,101 некоторого двоичного числа соответствует следующему десятичному числу: 1·24+ 1·23+0·22+ 1·21+ 1·20, 1·2-1+0·2-2+1·2-3=27,625.
Такое представление числа называется представлением с фиксированной запятой. Запятая фиксирована в соответствующей аппаратуре (арифметико-логическом устройстве АЛУ). Часто числа представлялись в виде дробей, поэтому как исходные данные, так и результаты решения задач должны были представляться именно так. Для этого проводили масштабирование – выбирали масштабные коэффициенты. Неправильный выбор масштабных коэффициентов мог вызвать так называемое переполнение разрядной сетки – ошибку в виде образования целой части, для которой в разрядной сетке нет места, и она теряется.
Рассмотрим, как выполняется двоичное суммирование:
Пусть необходимо сложить два двоичных числа 101 и 11:
Двоичное вычитание, например, (10-6 в десятичном коде) выглядит следующим образом:
Для выполнения такой операции необходим специальный «вычитатель», поэтому вычитание заменяют сложением числа в так называемом обратном коде, когда разряды вычитаемого инверсируют:
При этом образуется перенос 1, который необходимо сложить с промежуточным результатом 0011:
таким образом, получаем ответ 0100 (10-6=4 в десятичном коде).
Для операций в обратном коде необходим специальный сумматор с так называемым циклическим переносом, обеспечивающим сложение переноса с промежуточным результатом. Это неудобно, поэтому применяют так называемый дополнительный код, который устраняет циклический перенос. Представим десятичное число –6 в двоичном дополнительном коде (то есть, заменяем операцию 10-6 на операцию 10+ (–6), числа здесь в десятичном коде): –6 десятичное это –0110 двоичное, в обратном коде 1001, да еще прибавляем единицу (таковы правила образования дополнительного кода):
таким образом, дополнительный двоичный код десятичного числа –6 равен 1010. Здесь старший подчеркнутый разряд это знак, знаковый разряд. Тогда операция вычитания выглядит так:
перенос, возникающий в этом случае, просто отбрасывается, получаем 0100 (4 десятичное). Поэтому при аппаратной реализации вычитания может быть использован обычный сумматор.
Дополнительные коды четырехразрядных двоичных чисел показаны в табл. 65.
Таблица 65
Дополнительные коды
0000 | 0 |
0001 | + 1 |
0010 | + 2 |
0011 | + 3 |
0100 | + 4 |
0101 | + 5 |
0110 | + 6 |
0111 | + 7 |
1000 | Не использ. |
1001 | - 7 |
1010 | - 6 |
1011 | - 5 |
1100 | - 4 |
1101 | - 3 |
1110 | - 2 |
1111 | - 1 |
Таким образом, в формате из четырех разрядов представимы числа в диапазоне –7+7 (23 -1).
При использовании байта с фиксированной запятой представляют целые числа в диапазоне –127+127 (27 –1).
В общем случае n бит могут кодировать 2n объектов.
Перевод чисел из десятичной в двоичную систему счисления выполняют, например, путем деления на основание системы счисления – 2, и записывают соответствующие остатки, либо подбирают соответствующие степени числа 2.
Пример. Дано десятичное число 38, ближайшая степень числа 2 – это число 32, т.е. 25, остается еще 6, ближайшая степень числа 2 – это 4, т.е. 22, остается 2, это 21. Таким образом:
0×27+0×26+1×25+0×24+0×23+1×22+1×21+0×20=100110.
Восьмеричная система счисления.
В восьмеричном коде восемь символов:
0 (000 двоичное),
1 (001 двоичное),
2 (010 двоичное),
3 (011 двоичное),
4 (100 двоичное),
5 (101 двоичное),
6 (110 двоичное),
7 (111 двоичное).
Для перевода числа из восьмеричного кода в двоичный, необходимо каждую цифру восьмеричного кода заменить на триаду (три символа) двоичного, например, 3548=11 101 1002, здесь двоичное число представлено в байтовом формате, поэтому старшая триада неполная. Наоборот, из двоичного кода в восьмеричный: 10 111 1012=2758.
Шестнадцатеричная система счисления.
В шестнадцатеричном коде шестнадцать символов:
0 (0000 двоичное),
1 (0001 двоичное),
2 (0010 двоичное),
3 (0011 двоичное),
4 (0100 двоичное),
5 (0101 двоичное),
6 (0110 двоичное),
7 (0111 двоичное),
8 (1000 двоичное),
9 (1001 двоичное),
A (1010 двоичное),
B (1011 двоичное),
C (1100 двоичное),
D (1101 двоичное),
E (1110 двоичное),
F (1111 двоичное).
Для перевода числа из двоичной системы счисления в шестнадцатеричную, необходимо заменить каждую тетраду (четыре символа) соответствующим шестнадцатеричным символом, например:
1011 11012 =BD16.
Наоборот, из шестнадцатеричного кода в двоичный:
9АEF16= 1001 1010 1110 11112.
В восьмеричном и шестнадцатеричном кодах можно строить соответствующие арифметики.
Например, в шестнадцатеричном коде: EF16+AC16=19B16 (F+C=1B, 1 переносится в следующий разряд; E+A=18, да еще +1 из предыдущего разряда =19).
В восьмеричном коде: 378+218=608.
- 1.Основные понятия теории множеств.
- 2.Операции над множествами.
- 3.Соответствия, отображения и функции.
- 4. Отношения на множествах
- 5. Операции на множествах, понятие алгебры
- 6. Алгебра Кантора. Законы алгебры Кантора
- 7. Алгебраические системы. Решетка Хассэ
- 8.Задание множеств конституентами (числом)
- 9. Основные понятия комбинаторики
- 10. Размещения
- 11. Перестановки
- 12. Сочетания
- 13. Треугольник Паскаля
- 14. Бином Ньютона
- 15. Задание графов
- 16. Свойства графов
- 17. Понятие о задачах на графа
- 18. Понятие о переключательных функциях
- 19. Двоичные переключательные функции и способы их задания
- 20. Основные логические операции
- 21. Элементарные переключательные функции
- 22. Определение свойств переключательных функций
- 23. Функциональная полнота систем переключательных функций. Теорема Поста о функциональной полноте систем пф
- 24. Переключательные схемы - техническая реализация пф
- 25. Основные законы булевой алгебры пф
- 26.27. Формы представления переключательных функций. Сднф. Скнф
- 28. Цели минимизации пф
- 29. Основные понятия минимизации пф
- 30. Метод Квайна-Мак-Класки
- 31.32. Задание пф картой Карно. Карта Карно на три и четыре переменных
- 33. Минимизация на кубе соседних чисел
- 35. Основные определения теории автоматов
- 36. Описание конечных автоматов таблицами переходов-выходов и графами
- 37. Техническая интерпретация конечного автомата
- 38. Синтез комбинационных автоматов в заданном базисе
- 39. Элементарные автоматы памяти
- 40. Системы счисления - основа различных кодов
- 41. Представление информации в эвм