- •Омский государственный технический университет
- •1. Из истории развития систем счисления
- •Пальцевый счет
- •1.2. Древнеегипетская система счисления
- •Вавилонская система счисления
- •1.4. Системы счисления, основанные на позиционном принципе
- •1.5. Системы счисления Древней Греции
- •1.6. Римская система счисления
- •1.7. Древнеславянская система счисления
- •2. Позиционная система счисления
- •2.1. Представление произвольного числа в позиционной системе счисления
- •2.2. Двоичная система счисления
- •2.3. Восьмеричная система счисления
- •2.4. Шестнадцатеричная система счисления
- •2.5. Перевод чисел в систему с кратным основанием
- •2.6. Перевод правильной дроби
- •Задания для самостоятельной работы №1
- •1. Перевести данное число из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную системы счисления.
- •2. Перевести данное число в десятичную систему счисления.
- •Контрольная работа №1
- •3. Двоичная арифметика
- •3.1. Сложение двоичных чисел
- •3.2. Вычитание двоичных чисел
- •3.3. Умножение в двоичной системе счисления
- •3.4. Деление двоичных чисел
- •4. Формы представления чисел в эвм
- •4.1. Числа с фиксированной запятой
- •4.2. Числа с плавающей запятой
- •4.3. Сложение (вычитание) чисел с плавающей запятой
- •4.4. Умножение чисел с плавающей запятой
- •4.5. Прямой код
- •4.6. Обратный код
- •1 0111111111111111 – Обр. Код второго числа
- •4.7. Дополнительный код
- •4.8. Признак переполнения разрядной сетки
- •4.9. Правило перевода из дополнительного кода в десятичную систему
- •4.10. Модифицированные коды
- •5. Форматы чисел в эвм
- •Задания для самостоятельной работы №2
- •Контрольная работа №2.2
- •Контрольная работа №2.3
- •Контрольная работа №2.4
- •6. Кодирование алфавитно-цифровой информации
- •6.1. Параметры алфавитно-цифровой информации
- •6.3. Стандарты кодирования символов ansi, кои-8 и unicode
- •7. Двоично-десятичные коды
- •7.2. Коды с избытком
- •7.5. Действия над двоично-десятичными числами
- •7.6. Сложение двоично-десятичных чисел
- •7.7. Вычитание модулей двоично-десятичных чисел
- •7.8. Умножение модулей двоично-десятичных чисел
- •8. Код грея
- •8.1. Строение кода Грея
- •8.2. Использование кода Грея
- •8.3. Алгоритмы преобразования кода Грея
- •9. Погрешности вычислений
- •9.1. Источники погрешностей
- •9.2. Абсолютная и относительная погрешности
- •9.3. Десятичная запись приближенных чисел Значащая цифра числа. Верная значащая цифра
- •9.4. Распространение ошибок
- •9.5. Правила подсчета цифр
- •9.6. Общие рекомендации, позволяющие уменьшить погрешность вычислений
- •9.7. Ошибки в программах, связанные с особенностью выполнения арифметических операций
- •10. Представление графической информации
- •10.1. Текстовый режим
- •10.2. Графический режим
- •10.3. Растровое графическое изображение
- •10.4. Векторная графика
- •10.5. Форматы графических файлов
- •11. Представление звуковой информации
- •11.1. Цифро-аналоговое и аналого-цифровое преобразование звуковой информации
- •11.2. Компрессия звука
- •11.3. Формат Microsoft riff
- •11.6. Midi-форма звука
- •11.7. Аппаратные синтезаторы
- •11.8. Альтернативы звука в эвм
- •11.9. Звуковые платы
- •Задачи для самостоятельной работы
- •Приложение 3
- •Содержание
- •Литература
7.8. Умножение модулей двоично-десятичных чисел
Операция умножения сводится к образованию и многократному сложению частичных двоично-десятичных произведений.
Алгоритм умножения:
1. Сумма частичных произведений полагается равной нулю.
2. Анализируется очередная тетрада множителя и множимое прибавляется к сумме частичных произведений столько раз, какова цифра, определяемая этой тетрадой.
3. Сумма частичных произведений сдвигается на одну тетраду и повторяются действия, указанные в пункте 2, пока все цифры (тетрады) множителя не будут обработаны. Направление сдвига зависит от того, какой вариант перемножения выбран - "старшие разряды вперед" или "младшие разряды вперед".
4. Каждая операция суммирования завершается десятичной коррекцией, соответствующей случаю суммирования двоично-десятичных чисел без избытка 6 (т.е. необходимо добавить 0110 к тем терадам, из которых был перенос или в которых =1).
Пример 7.12. Z = X * Y = 25(10) * 13(10) = 325(10)
=25(10)= 0010 0101(2-10); =13(10)= 0001 0011(2-10)
Для решения примера выберем вариант перемножения "старшие разряды вперед". В соответствии с пунктом 1 алгоритма, полагаем сумму частичных произведений P0=0. (Частичные произведения будем обозначать Pi).
Формирование второго частичного произведения более длительная операция, поскольку вторая анализируемая тетрада содержит 3(10). Поэтому каждая операция суммирования требует проверки необходимости коррекции. Вычислим P2, последовательно суммируя слагаемые, образующие P2.
Таким образом, второе частичное произведение, состоящее из трех слагаемых, имеет вид:
= 0111 0101.
Теперь можно вычислить сумму первого и второго частичного произведений, т.е. результат.
Окончательный результат: = 0011 0010 0101(2-10) = 325(10).
Следует отметить, что в данном случае при суммировании операндов не возникало переносов. Поэтому коррекция осуществлялась только по признаку =1.
Операция деления выполняется путем многократного вычитания, сдвига и анализа результата подобно тому, как это делается при обычном делении.
8. Код грея
Во многих практических приложениях, например при аналого-цифровом преобразовании данных, желательно пользоваться кодами, в которых все последовательные кодовые наборы отличаются друг от друга лишь одним разрядом (число несовпадающих разрядов между двумя кодами называют расстоянием Хэмминга). Коды, когда расстояние Хэмминга между последовательными кодовыми наборами равно единице, называют циклическими. Особенно важным среди циклических кодов является код Грея, называемый также рефлексным (отражённым) двоичным кодом. Его преимущество заключается в простоте перехода к двоичной системе и обратно. Этот код строится из двоичных цифр таким образом, что соседние числа в нём отличаются всегда только в одном разряде. Кодов с такой же характеристикой много, но для кода Грея имеется простой алгоритм перевода чисел в двоичный позиционный код и обратно.
8.1. Строение кода Грея
Код Грея - непозиционный код с одним набором символов (0 и 1) для каждого разряда. Таким образом, в отличие от римской системы счисления число в коде Грея не является суммой цифр.
Пусть - кодовый набор в коде Грея с ( ) разрядами, а - соответствующее двоичное число, где индексы 0 и обозначают младший и старший разряды соответственно. Тогда разряд можно выразить через соответствующее двоичное число следующим образом:
, , , (7.1)
где - следующий старший разряд после , - символ операции сложения по модулю два:
0 0=0, 0 1=1, 1 0=1, 1 1=0.
Пример 8.1. 1110010(2)= 1001011(г).
Для перехода от кода Грея к двоичному коду следует просмотреть его, начиная с крайнего левого разряда, и положить , если число единиц, предшествующих , четно и , если это число нечетно, ~ - инверсия (отрицание, дополнение ). Отметим, что нулевое число единиц также считается четным. Например: 111011(г)= 101101(2).
Код Грея относится к классу так называемых рефлексивных (отраженных) кодов. Термин "рефлексивный" используется для обозначения кодов, обладающих таким свойством, что для построения n-разрядного кода следует найти отображение (n-1)-разрядного кода, где Д - двоичный код, Г - код Грея (таблица 8.1.).
Во второй колонке приведен двухразрядный код Грея, который можно получить из двоичного. Трехразрядный код можно построить путем отражения двухразрядного кода относительно горизонтальной оси, расположенной ниже описывающей его таблицы, и присвоения наибольшему значащему разряду выше оси значения ноль, а ниже оси - значения единица. Аналогично строится четырехразрядные, пятиразрядные и т.д. коды Грея. В первой колонке приведен двоичный аналог кода Грея.
Таблица 8.1.
Д |
Г |
Г |
Г |
00 |
00 |
0 00 |
0 000 |
01 |
01 |
0 01 |
0 001 |
10 |
11 |
0 11 |
0 011 |
11 |
10 |
0 10 |
0 010 |
100 |
|
1 10 |
0 110 |
101 |
|
1 11 |
0 111 |
110 |
|
1 01 |
0 101 |
111 |
|
1 00 |
0 100 |
1000 |
|
|
1 100 |
1001 |
|
|
1 101 |
|
|
|
|
|
|
|
|
1111 |
|
|
1 000 |