Системой счисления называют способ изображения произвольного числа ограни-ченным набором цифр. Номер позиции, определяющий вес, с которым данная цифра складывается в числе, называют разрядом, а системы счисления, обладающие отме-ченным свойством, — позиционными.
В общем случае n-разрядное положительное число Nв произвольной системе счис-ления с основанием рпредставляется суммой вида
n -1
N= Σ аk pk,
k=0
где аk— отдельные цифры в записи числа, значения которых равны членам натураль-ного ряда в диапазоне от 0 до (р– 1).
Двоичная система счисления. При выполнении вычислений цифровыми электрон-ными устройствами используются элементы с двумя устойчивыми состояниями. Поэ-тому в цифровой технике широкое распространение получила позиционная двоичная система счисления (с основанием 2). В каждом двоичном разряде, получившем назва-ние бит, может стоять 1 или 0. Сама же запись числа (двоичный код) представляет собой последовательность из единиц и нулей. Чтобы отличить двоичное число от десятичного, будем дополнять его справа суффиксом В (Binary), как это принято в машинно-ориентированных языках программирования, называемых ассемблерами.
Веса соседних разрядов двоичного кода числа отличаются в два раза, а самый правый разряд (младший) имеет вес 1. Поэтому, например
Четыре соседних бита называют тетрадой, группу из 8 бит называют байтом, а из 16 бит — машинным словом. Совокупность из 1024 (210) байтов называют килобайтом, из 1024 килобайтов — мегабайтом, из 1024 мегабайтов — гигабайтом.
1 Гб = 210 Мб = 220 Кб = 230 байт.
Двоично-десятичная система счисления. Арифметические операции в двоичной системе счисления исключительно просты и легко реализуются аппаратно. Однако при вводе и выводе информации в цифровое устройство она должна быть представле-на в более привычной для человека десятичной системе счисления.
Стремление упростить процедуру пересчета двоичных чисел к десятичному эквиваленту и привело к использованию двоично-десятичной системы счисления(BD — Binary Decimals). Она используется в ЭВМ не только в качестве вспомогательной системы счисления при вводе и выводе данных, но и в качестве основной при решении задач, когда в ЭВМ вводится и выводится большое количество чисел, а вычислений над ними производится мало.
Десятичные числа в двоично-десятичной системе счисления кодируются в прямом нормально-взвешенном коде 8-4-2-1, т. е. каждую цифру десятичного числа необходи-мо заменить соответствующей тетрадой двоичных чисел. Например, десятичное число 9531 в двоично-десятичном коде представляется машинным словом из четырех тетрад
9531 = 1001 0101 0011 0001.
Шестнадцатиричная система счисления. Записывать двоичные числа большой разрядности утомительно. Поэтому, как правило, они представляются более компакт-ными записями с использованием шестнадцатеричнойсистемы счисления. В этой сис-теме используют десять членов натурального ряда от 0 до 9, а в качестве остальных цифр — первые шесть латинских букв A = 10, B = 11, C = 12, D = 13, E = 14, F = 15. Справа шестнадцатеричное число будем дополнять суффиксом Н (Hexadecimal).
Перевод двоичного числа в число системы с основанием 16 и наоборот не вызывает затруднений. Для этого исходное двоичное число справа налево разбивается на тетра-ды, а затем содержимое каждой из них рассматривается как двоичный код соответст-вующей цифры шестнадцатеричной системы. Для обратного перехода каждую цифру шестнадцатеричного числа заменяют тетрадой двоичного кода, например:
N = 8B5FH = 1000 1011 0101 1111 B.
Таблица 1.1 — Соответствие чисел различных систем счисления
Десятичное число (D)
Шестнадца-тиричное число (Н)
Двоичное
число (В)
Продолжение таблицы 1.1
Десятичное число (D)
Шестнадца-тиричное число (Н)
А
В
С
D
Е
F
Двоичное
число (В)
1.1.2 Перевод целых чисел из одной системы счисления в другую
Для перевода из десятичной системы в любую другую позиционную систему счисления производится методом последовательного деления на основание такой
системы до тех пор, пока частное от деления не будет меньше основания системы.
Число в новой системе записывается в виде остатков от деления, начиная с последнего частного, справа налево. Цифру старшего разряда даёт последнее частное от деления.
Пример 1.1. Перевести десятичное число 15710 в двоичный код, результат проверить.
число 157:2=78; 78:2=39; 39:2=19; 19:2=9; 9:2=4; 4:2=2; 2:2=1.
Для перевода двоичного числа в восьмиричную систему счисления оно делится на триады справа налево и каждая триада заменяется восьмиричным числом:
Пример 1.4. 010 100 101 001 = 24518
1.1.3 Представление отрицательных чисел двоичным кодом
С помощью байта данных можно представить различную информацию:
– целое число без знака (от 0 до 255);
– число от 0 до 99 в двоично-десятичном коде;
– машинный код команд микропроцессора;
– состояние восьми датчиков;
– двоичное число со знаком в прямом, обратном или дополнительном коде ± Х, где Х - модуль числа (от 0 до 127).
Для отображения модуля числа используется семь младших разрядов, а для отображения знака — старший разряд (0 — для положительных чисел, 1 — для отрицательных).
Прямой, обратный и дополнительный коды положительных чисел совпадают. Для получения дополнительного кода отрицательного числа инвертируется код модуля и прибавляется единица.
Дополнительный код однобайтового числа минус Х равен дополнению до 256, т. е. двоичному коду числа 256 − X . Преобразование дополнительного кода числа в прямой код осуществляется по тому же правилу, что прямого в дополнительный.
Пример 1.5.Записать дополнительный код однобайтового числа минус 10010 = 01100100. Для отображения знака используется старший разряд числа.
Ответ: дополнительный код числа минус 10010 равен 100111002.
1.1.4 Перевод десятичного дробного числа в двоичную систему
Перевод десятичного дробного числа в десятичную систему производится в два этапа. Вначале переводится целая часть числа, а затем – дробная.
Десятичная дробь переводится в двоичную систему путём последовательного умножения дробной части на основание два. Дробное число записывается в двоичной системе в виде целых частей чисел, полученных при умножении только дробной части на два, начиная сверху после запятой, и при этом задаётся точность вычислений.
Пример 1.6. Перевести число 187,5610 в двоичную систему с точностью до шестой цифры после запятой.
Перевод целой части.
число 187:2=93; 93:2=46; 46:2=23; 23:2=11; 11:2=5; 5:2=2; 2:2=1;
Числа в цифровых устройствах ЦУ могу представляться в форме целых чисел, чисел с фиксированной запятой и чисел с плавающей запятой.
Целые числа при решении задач встречаются в случаях представления индексов переменных, подсчёта числа повторения каких-либо действий и т. д. Для хранения таких чисел в ячейках памяти применяется разрядная сетка, приведённая на рисунке 1.1,а. Старший разряд – знаковый, при этом знак «+» обозначают цифрой «0», а знак «-» - цифрой «1». Младшие разряды сетки занимают цифры модуля числа, свободные старшие разряды заполняются нулями. Например, отрицательное число -1310 = -11012 в восьмиразрядной сетке будет записано так, как это показано на рисунке 1.1,б.
Если количество значащих разрядов модуля числа превышаетn-1, то происходит потеря старших разрядов модуля, что называется переполнением разрядной сетки и приводит к ошибкам представления чисел. Диапазон чисел такой сетки составляет
0…2n-1 – 1. В десятичной системе счисления при 16-ти разрядах диапазон чисел составит 0…32×1024-1 ≈ 0…32×103, а при 32-х разрядах - ≈ 2×109.
Рисунок 1.1 – Разрядная сетка целого числа
Числа с фиксированной запятой.При этой форме запятая ставится перед старшим разрядом модуля числа (рисунок 1.2). Таким образом, модуль оказывается всегда меньше единицы, а для записи произвольного числа применяются масштабные коэффициенты, значения которых постоянны для исходных данных задачи и всех промежуточных результатов вычислений.
Рисунок 1.2 – Разрядная сетка числа с фиксированной запятой
При занесении числа в ячейку памяти свободные младшие разрядызаполняются нулями.Если число значащих разрядов модуля числа превышает число разрядов сетки, то младшие разряды теряются. Это приводит к погрешности вычислений έАБС, меньшей единицы младшего разряда (при 16 разрядах έАБС < 1/32×10-3, при 32 разрядах <5×10 -10. Если число имеет целую часть, то для неё в разрядной сетке места нет и она теряется.
Достоинства формы: простота выполнения арифметических операций.
Недостатки: 1) необходимость выбора масштабных коэффициентов 2) низкая точность представления чисел с малыми значениями модуля,3) потеря целой части. Числа с плавающей запятойпозволяют представлять числа в широком диапазоне значений и с высокой точностью. Число состоит из мантиссы, старший разряд которой определяет знак числа, и порядка со знаком (рисунок 1.3).
Рисунок 1.3 – Разрядная сетка числа с плавающей запятой
Модуль мантиссы представляется двоичным дробным числом (т.е. запятая ставится перед старшим разрядом модуля мантиссы М), порядок П представляется целым числом и показывает действительное положение запятой в числе. Точность представления зависит количества цифр мантиссы. Для повышения точности мантиссу нормализуют, то есть обеспечивают 0,5 ≤ |М| < 1. Признак нормализации: наличие «1» в старшем разряде модуля мантиссы.
Достоинство формы:
1. Широкий диапазон представления чисел. При шести разрядах порядка диапазон чисел составляет от 1019 до10-19.
2. Малая погрешность представления чисел, которая зависит от числа разрядов, отводимых под мантиссу.
1.1.6 Выполнение арифметических операций в различных системах счисления
Основная операция в ЦУ – алгебраическое сложение, то есть сложение и положительных и отрицательных чисел. При этом вычитание заменяется сложеним с числом, знак которого изменён на обратный, умножение и деление выполняются с помощью операции сложения и некоторых логических действий.
При записи кодов чисел знак обозначается полужирными цифрами, а запятая не показывается.
Сложение положительных чисел.
Переносы 11 1
Первое слагаемое N1 001101
Второе слагаемое N2 001101
-----------
Сумма N1 + N2 011010
Цифры разрядов формируются последовательно, начиная с младшего. При этом дополнительно формируется цифра переноса в следующий разряд.