- •Теоретическая часть
- •Двоичная система счисления
- •2. Представление числовой информации
- •2.1. Перевод целых чисел
- •2.2. Перевод дробных чисел
- •3. Кодирование текстовой информации
- •4. Алгебра логики
- •5. Циклический код Грея
- •6. Обнаружение и исправление ошибок. Код Хэмминга
- •Задание для самостоятельной работы
Теоретическая часть
Двоичная система счисления
Для выполнения вычислений в ЭВМ используется двоичная система счисления (ДСС). В общем случае число X(s) в системе счислении с основанием s может быть представлено в виде
, (1)
где - i-ая позиция числа X(s).
Например, при s=10 число 263,75 можно представить следующим образом:
263,75(10)=2*10^2+6*10^1+3+7*10^(-1)+5*10^(-2).
При s=2 имеем ДСС. Формула (1) при s=2 может использоваться для перевода чисел из ДСС в десятичную систему.
Например:
11101,01(2)=1*2^4+1*2^3+1*2^2+1+1*2^(-2)=29,25(10).
Для перевода чисел из десятичной системы счисления в двоичную нужно выделить целую (Xц) и дробную (Xд) части. Целая часть переводится делением на два, а дробная умножением на два.
Для визуального представления двоичного числа используется шестнадцатеричная система счисления (ШСС, s=16), в которой цифрам 10…15 соответствуют буквы A, B, C, D, E, F. Удобство этой системы счисления заключается в том, что одна цифра ШСС занимает 4 бита, а в один байт записывается две таких цифры. При необходимости можно легко составить таблицу соответствия между двоичным и 16-ричным кодом. В частности, двоичному коду 0000 соответствует 16-ричный код 0; коду 0001 – 1; коду 0010 – код 2; … коду 1111 – код F.
Например, A1C(16)=101000011100(2), а 10000100(2)=84(16).
2. Представление числовой информации
Для представления числовой информации, предназначенной для вычислений, используется три формата: двоичный с фиксированной запятой (целый или правильная дробь), двоичный с плавающей запятой (или вещественный), двоично-десятичный (или десятичный).
В двоичном формате с фиксированной запятой предполагается, что положение запятой, отделяющей целую часть от дробной, фиксировано в разрядной сетке машины. Для представления знака выделяется специальный разряд - знаковый (обычно крайний левый). Для положительных чисел в знаковом разряде записывается 0, а для отрицательных - 1.
Количество двоичных разрядов и положение запятой в разрядной сетке (отдельный разряд для запятой не выделяется) определяют такие важные характеристики ЭВМ, как точность и диапазон представляемых чисел.
В двоичном формате с плавающей запятой числа представляются в следующем виде
X(2)=M*2 ^ p, (2)
где Х(2) - число в ДСС; М - мантисса (правильная дробь); р - порядок (целое число).
Мантисса и порядок, как правило, имеют знаковый разряд. Если обозначить через k - разрядность числа, через n - разрядность порядка со знаком, через m - разрядность мантиссы со знаком, то k=m+n.
Формат с плавающей запятой представляет вещественные числа. Они имеют больший диапазон значений по сравнению с целыми и, как правило, используют четыре, восемь или десять байт (общая разрядность числа, а также разрядность порядка и мантиссы и определяют диапазон их значений). Однако устройства, реализующие операции с числами в форме с плавающей запятой, характеризуют большая сложность и меньшее быстродействие.
В двоично-десятичном формате десятичные цифры хранятся в виде 4-битных двоичных эквивалентов:
0 - 0000 1 - 0001 2 - 0010 3 - 0011 4 - 0100
5 - 0101 6 - 0110 7 - 0111 8 - 1000 9 - 1001
Двоично-десятичный формат относится к классу взвешенных кодов с весами 8421. Это позволяет легко переводить его в десятичную систему счисления:
1001(2-10)=8*1+4*0+2*0+1*1=9(10).
Двоично-кодированные числа могут быть представлены в ПК полями переменной длины в упакованномираспакованном формате. В упакованном формате (рис.1) для каждой десятичной цифры отводится по 4 двоичных разряда (полбайта), при этом знак числа кодируется в крайнем правом полубайте числа (1100 – знак «+», и 1101 – знак «-»).
Цф |
Цф |
Цф |
Цф |
… |
Цф |
Знак |
Байт Байт Байт
Рис.1. Структура поля упакованного формата (здесь: Цф – цифра)
Например, число 845 - в упакованном виде будет представлено, как 1000 0100 0101 1100. Удобство этого формата заключается в том, что две цифры записываются в один байт. Упакованный формат используется в ПК обычно при выполнении операций сложения и вычитания двоично-десятичных чисел.
В распакованном формате (рис.2) для каждой десятичной цифры выделяется по целому байту, при этом старшие 4 бита (зона) каждого байта (кроме самого правого) в ПК заполняются кодом 0011, а в младших 4-х битах обычным образом кодируются десятичные цифры. Старшие 4 бита самого правого байта используются для кодирования знака числа. Т.е. вышеуказанное число 845 будет представлено как 0011 10000011 010011000101.
Зона |
Цф |
Зона |
Цф |
… |
Зона |
Цф |
Знак |
Цф |
Байт Байт Байт Байт
Рис.2. Структура поля распакованного формата
Распакованный формат используется в ПК при вводе-выводе информации, а также при выполнении операций умножения и деления двоично-десятичных цифр.