- •Введение
- •1. Предмет информатики
- •1.1 Роль информации в современном обществе
- •1.2 Информационные барьеры в истории человечества
- •1.3 Предметная область информатики
- •2. Теория информации
- •2.1 Исходные понятия теории информации
- •2.2 Формы представления информации
- •2.3 Преобразование сообщений
- •3. Понятие информации в теории Шеннона
- •3.1 Понятие энтропии
- •3.2 Условная энтропия
- •3.3 Статистическое определение информации
- •3.4 Энтропия и информация
- •3.5 Информация и алфавит
- •4. Кодирование символьной информации
- •4.1 Постановка задачи кодирования. Первая теорема Шеннона
- •4.2 Алфавитное неравномерное двоичное кодирование сигналами равной длительности
- •4.2.1 Неравномерный код с разделителем
- •4.2.2 Префиксное неравномерное кодирование
- •4.3 Равномерное алфавитное двоичное кодирование. Байтовый код
- •4.4 Алфавитное кодирование с неравной длительностью элементарных сигналов. Код Морзе
- •4.5 Блочное двоичное кодирование
- •5. Кодирование и представление чисел в компьютере
- •5.1 Системы счисления
- •5.2 Перевод чисел из одной системы счисления в другую
- •5.3 Перевод чисел между системами счисления с основанием 2k
- •5.4 Формы представления вещественных чисел
- •5.5 Кодирование целых чисел в компьютере
- •5.5.1 Кодирование в компьютере целых чисел без знака
- •5.5.2 Кодирование в компьютере целых чисел со знаком
- •5.6 Кодирование в компьютере вещественных чисел
- •5.7 Двоично-десятичные коды
- •5.7.1 Код (8421) – код прямого замещения
- •6. Обработка чисел в компьютере
- •6.1 Выполнение операций сложения
- •6.2 Сложение нормализованных чисел
- •6.3 Выполнение операции умножения
- •6.3.1 Общий алгоритм умножения
- •6.3.2 Особенности умножения в форме с плавающей запятой
- •6.4 Деление чисел
- •7. Кодирование графической и звуковой информации
- •7.1 Представление изображений
- •7.2 Представление звука
- •Список литературы
- •Родина Наталья Васильевна Информатика
- •Часть 1
- •107846, Москва, ул.Стромынка, 20
6. Обработка чисел в компьютере
6.1 Выполнение операций сложения
Как было отмечено в предыдущей главе, для записи чисел в компьютере используются дополнительный код. При использовании дополнительных кодов операция вычитания двух чисел как самостоятельная отсутствует – она заменяется сложением первого числа с дополнительным кодом второго, то есть просто сложением двух ячеек памяти.
При этом знаковый разряд участвует в операциях по правилам двоичного сложения. Покажем это на примерах.
Пример 1. Найти сумму (X + Y), если:
1) X = 126(10) 0 126
Y = 26(10) 1 974
0 100
знак результата + (код 0), результат +100(10) .
2) X = 512(10) 1 488
Y = 390(10) 1 610
1 098
Знак результата () (код 1), результат в дополнительном коде. Перевод отрицательного числа из дополнительного кода в прямой дает результат 902(10).
3) X = 850(10) 1 150
Y = + 429(10) 0 429
1 579
знак (), результат в ДК, обратный перевод в прямой код 421(10).
4) X = 2101(3) 1. 0122
Y = + 1011(3) 0. 1011
1. 1210
результат (), результат 1020(3).
5) X = + 500(10) 0 500
Y = + 739(10) 0 739
1 239
!!! Признак переполнения – отрицательный знак результата при сложении двух положительных чисел и наоборот – положительный знак результата при сложении двух отрицательных чисел.
6) X = 500(10) 1 500
Y = 739 (10) 1 261
0 761
Пример 2. Представить числа в ДК с учетом разрядной сетки 1 байт и выполнить операцию сложения.
X = 3(10) 11111101
Y = + 3(10) 00000011
00000000 +0
6.2 Сложение нормализованных чисел
Сложение чисел в форме с плавающей запятой характеризуется необходимостью работы с порядками и нормализацией мантиссы после сложения.
Даны два нормализованных числа – A = mA рkA, B = mB рkB.
Алгоритм сложения чисел в форме с ПЗ.
1. Проверить равенство порядков слагаемых kA, kB. Если порядки не равны, то увеличить меньший порядок до большего.
2. Если меньший порядок был увеличен на m единиц, то необходимо мантиссу этого числа сдвинуть на m разрядов вправо с потерей младших разрядов.
3. Провести сложение мантисс.
4. Проверить условие нормализации мантиссы результата, и провести ее, если условие не соблюдается.
Пример 3. Пусть под мантиссу отводится n=5 разрядов.
а) А(10) = 0.13840 103
В(10) = 0.16430 101
Порядок числа В необходимо увеличить на 2, при этом мантиссу В сдвигаем вправо на 2 разряда (теряя младшие разряды).
В1 = 0.00164 А+В1
0.13840
0.00164
0.14004 - мантисса удовлетворяет условиям нормализации.
Ответ: А + В = 0.14004 103
б) А(2) = 0.11011 23
В(2) = 0.11111 25
Порядок числа А необходимо увеличить на 2, при этом мантиссу А сдвигаем вправо на 2 разряда (теряя младшие разряды).
mА’ = 0.00110.
Выполняем сложение мантисс
0.00110
0.11111
1.00101 – мантисса результата не удовлетворяет условиям нормализации (больше 1).
Проведем нормализацию результата и увеличение порядка.
Ответ: А + В = 0.10010 26
!Из-за ошибок усечения (отбрасывания) младших разрядов при сложении вещественных чисел не выполняется ассоциативность сложения, то есть (а + b) + c a + (b + c)
Пример 4. Найти сумму чисел, если для представления мантиссы отведено 4 разряда: 2 ½ + 1/8 + 1/8 .
2 ½ = 0.1010 22 0,1010 22
1/8 = 0.1000 2-2 0,0000 22 (после выравнивания порядков)
Проведем сложение в порядке, указанном в задании.
2 ½ + 1/8 0,1010 22
0,0000 22
0.1010 22 - результат равен первому слагаемому
Добавляем к результату еще 1/8 :
0.1010 22
0.0000 22
0.1010 22
Ответ: 0.1010 22 .
Поменяем порядок сложения:
1/8 + 1/8 0,1000 2-2
0,1000 2-2
1,0000 2-2 0,1000 2-1
Добавляем к результату 2 ½.
0,1010 22 0.1010
0,1000 2-1 0.0001
0.1011 22
Ответ: 0.1011 22 – правильный результат.
Следовательно, при сложении вещественных чисел важен порядок их сложения. Проблема состоит в том, что при сложении большого и малого числа малое число может отсекаться.
Поэтому общее правило сложения звучит так:
– сначала складываем небольшие числа, надеясь, что в сумме, они дадут число, которое можно сложить с большим.
Проблема сложения важна в прикладных системах (например, таких как навигационные устройства), так как незначительная ошибка может увеличиваться в процессе дальнейших вычислений. Для обычных пользователей ПК такой точности вполне достаточно.