Оглавление
Введение........................................................................................................................................................................................... 5
Арифметические
основы работы компьютеров.................................................................................................................... 6
1. Что такое система счисления?.................................................................................................................................... 6
2. Как порождаются целые числа в
позиционных системах
счисления?................................................................................................................................................................. 7
3. Какие системы счисления используют
специалисты
для общения с компьютером?.............................................................................................................................. 7
4. Почему люди пользуются десятичной
системой,
а компьютеры – двоичной?................................................................................................................................... 8
5. Почему в компьютерах используются
также восьмеричная
и шестнадцатеричная системы счисления?...................................................................................................... 9
6. Как перевести целое число из
десятичной системы в любую
другую позиционную систему счисления?.................................................................................................... 10
7. Как перевести правильную десятичную дробь
в любую другую
позиционную систему счисления?................................................................................................................... 10
8. Как перевести число из двоичной (восьмеричной,
шестнадцатеричной) системы в десятичную систему? 11
9. Сводная таблица переводов целых чисел
из одной системы
счисления в другую.............................................................................................................................................. 11
10. Как производятся арифметические
операции в позиционных системах счисления?............................. 13
11. Как представляются в компьютере
целые числа?............................................................................................. 19
12. Как компьютер выполняет
арифметические действия
над целыми числами?.......................................................................................................................................... 21
13. Как представляются в компьютере
вещественные числа?............................................................................. 25
14. Как компьютер выполняет
арифметические действия
над нормализованными числами?.................................................................................................................... 27
Введение
В данных методических указаниях рассматривается
материал по теме «Арифметические основы работы компьютеров». Учебный материал включает
в себя 14 пунктов по изучаемой теме.
В
теме «Арифметические основы работы компьютеров» представлены ответы на вопросы
о том, какие системы счислений используют специалисты для общения с
компьютером, почему люди пользуются десятичной системой, а компьютеры –
двоичной, почему в компьютерах используются также восьмеричная и
шестнадцатеричная системы счисления. Здесь же показан перевод целых и дробных
чисел из десятичной системы счисления в р-ичную и наоборот. В этой же
главе показано, как представляются целые и вещественные числа в компьютере, а
также выполнение арифметических операций над целыми и вещественными числами,
представленными в позиционных системах счисления. Кроме этого, показано, как
компьютер выполняет арифметические действия над нормализованными числами.
Арифметические
основы компьютеров
1. Что такое система
счисления?
Система счисления – это способ записи чисел с
помощью заданного набора специальных знаков (цифр).
Существуют позиционные и
непозиционные системы счисления.
В непозиционных системах вес цифры (т. е. тот вклад, который она вносит в
значение числа) не зависит от её позиции в записи числа. Так, в римской системе
счисления в числе ХХХII (тридцать два) вес цифры Х в любой позиции равен просто
десяти.
В позиционных системах счисления вес каждой цифры
изменяется в зависимости от её положения (позиции) в последовательности цифр,
изображающих число. Например, в числе 757,7 первая семёрка означает 7 сотен,
вторая – 7 единиц, а третья – 7 десятых долей единицы.
Сама же запись числа 757,7
означает сокращённую запись выражения
Любая
позиционная система счисления характеризуется своим основанием.
Основание позиционной системы
счисления –
это количество различных знаков или символов, используемых для изображения цифр
в данной системе.
За основание системы можно
принять любое натуральное число – два, три, четыре и т. д. Следовательно, возможно
бесчисленное множество позиционных систем: двоичная, троичная, четверичная и
т. д. Запись чисел в каждой из систем счисления с основанием q
означает сокращённую запись выражения
,
где – цифры системы счисления; и – число целых и дробных
разрядов соответственно.
Например:
2. Как порождаются целые числа в позиционных системах
счисления?
В
каждой системе счисления цифры упорядочены в соответствии с их значениями: 1
больше 0, 2 больше 1 и т. д.
Продвижением
цифры называют замену её следующей по величине.
Продвинуть
цифру 1, значит заменить её на 2, продвинуть цифру 2, значит заменить её на 3 и
т. д. Продвижение старшей цифры (например цифры 9 в десятичной системе) означает
замену её на 0. В двоичной системе, использующей только две цифры – 0 и 1,
продвижение 0 означает замену его на 1, а продвижение 1 – замену её на 0.
Целые
числа в любой системе счисления порождаются с помощью Правила счёта:
Для образования целого числа,
следующего за любым данным целым числом, нужно продвинуть самую правую цифру
числа; если какая-либо цифра после продвижения стала нулем, то нужно продвинуть
цифру, стоящую слева от неё.
Применяя это правило, запишем
первые десять целых чисел
·
в двоичной системе: 0, 1, 10, 11, 100,
101, 110, 111, 1000, 1001;
·
в троичной системе: 0, 1, 2, 10, 11, 12,
20, 21, 22, 100;
·
в пятеричной системе: 0, 1, 2, 3, 4, 10,
11, 12, 13, 14;
·
восьмеричной системе: 0, 1, 2, 3, 4, 5, 6,
7, 10, 11.
3. Какие системы счисления используют специалисты для
общения
с компьютером?
Кроме
десятичной, широко используются системы с основанием, являющимся целой степенью
числа 2, а именно:
·
двоичная
(используются цифры 0, 1);
·
восьмеричная
(используются цифры 0, 1, ..., 7);
·
шестнадцатеричная
(для первых целых чисел от нуля до девяти используются цифры 0, 1, ..., 9, а
для следующих чисел – от десяти до пятнадцати – в качестве цифр используются
символы A, B, C, D, E, F).
Полезно
запомнить запись в этих системах счисления первых двух десятков целых чисел
(табл. 1.1).
Таблица
1.1
10-я
|
2-я
|
8-я
|
16-я
|
0
|
0
|
0
|
0
|
1
|
1
|
1
|
1
|
2
|
10
|
2
|
2
|
3
|
11
|
3
|
3
|
4
|
100
|
4
|
4
|
5
|
101
|
5
|
5
|
6
|
110
|
6
|
6
|
7
|
111
|
7
|
7
|
8
|
1000
|
10
|
8
|
9
|
1001
|
11
|
9
|
10
|
1010
|
12
|
A
|
11
|
1011
|
13
|
B
|
12
|
1100
|
14
|
C
|
13
|
1101
|
15
|
D
|
14
|
1110
|
16
|
E
|
15
|
1111
|
17
|
F
|
16
|
10000
|
20
|
10
|
17
|
10001
|
21
|
11
|
18
|
10010
|
22
|
12
|
19
|
10011
|
23
|
13
|
Из всех систем счисления особенно
проста и поэтому интересна для технической реализации в компьютерах двоичная
система счисления.
4. Почему люди пользуются десятичной системой,
а компьютеры – двоичной?
Люди предпочитают десятичную систему, вероятно, потому,
что с древних времен считали по пальцам, а пальцев у людей по десять на руках и
ногах. Не всегда и не везде люди пользуются десятичной системой счисления. В
Китае, например, долгое время пользовались пятеричной системой счисления.
А компьютеры используют
двоичную систему потому, что она имеет ряд преимуществ перед другими системами:
·
для её реализации нужны технические
устройства с двумя устойчивыми состояниями (есть ток – нет тока, намагничен –
не намагничен и т. п.), а не, например, с десятью, как в десятичной;
·
представление информации посредством
только двух состояний надежно и помехоустойчиво;
·
возможно применение аппарата булевой
алгебры для выполнения логических преобразований информации;
·
двоичная арифметика намного проще
десятичной.
Недостаток
двоичной системы – быстрый рост числа разрядов, необходимых для записи чисел.
5. Почему в компьютерах используются также восьмеричная
и шестнадцатеричная системы счисления?
Двоичная
система, удобная для компьютеров, для человека неудобна из-за её громоздкости и
непривычной записи.
Перевод чисел из десятичной
системы в двоичную и наоборот выполняет машина. Однако чтобы профессионально
использовать компьютер, следует научиться понимать слово машины. Для этого и
разработаны восьмеричная и шестнадцатеричная системы.
Числа в этих системах
читаются почти так же легко, как десятичные, требуют, соответственно, в три
(восьмеричная) и в четыре (шестнадцатеричная) раза меньше разрядов, чем в
двоичной системе (ведь числа 8 и 16 – соответственно, третья и четвёртая
степени числа 2).
Перевод восьмеричных и шестнадцатеричных
чисел в двоичную систему очень прост: достаточно каждую цифру заменить
эквивалентной ей двоичной триадой (тройкой цифр) или тетрадой
(четвёркой цифр).
Например:
Чтобы перевести число из
двоичной системы в восьмеричную или шестнадцатеричную, его нужно разбить влево
и вправо от запятой на триады (для восьмеричной) или тетрады (для
шестнадцатеричной) и каждую такую группу заменить соответствующей восьмеричной
(шестнадцатеричной) цифрой.
Например:
6. Как перевести целое число из десятичной системы
в любую другую позиционную систему счисления?
При переводе целого десятичного
числа в систему с основанием q его необходимо последовательно делить на q
до тех пор, пока не останется остаток, меньший или равный q–1. Число в
системе с основанием q записывается как последовательность остатков от
деления, записанных в обратном порядке, начиная с последнего.
Пример: Перевести число 75 из
десятичной системы в двоичную, восьмеричную и шестнадцатеричную:
Ответ: 7510 = 1 001 0112
= 1138 = 4B16.
7. Как перевести правильную десятичную дробь
в любую другую позиционную систему счисления?
При переводе правильной
десятичной дроби в систему счисления с основанием q необходимо сначала
саму дробь, а затем дробные части всех последующих произведений последовательно
умножать на q, отделяя после каждого умножения целую часть произведения.
Число в новой системе счисления записывается как последовательность полученных
целых частей произведения.
Умножение производится до тех
поp, пока дpобная часть пpоизведения не станет pавной нулю. Это значит, что
сделан точный пеpевод. В пpотивном случае пеpевод осуществляется до заданной
точности. Достаточно того количества цифp в pезультате, котоpое поместится в
ячейку.
Пример: Перевести число 0,35 из
десятичной системы в двоичную, восьмеричную и шестнадцатеричную:
Ответ:
8. Как пеpевести число из двоичной
(восьмеpичной, шестнадцатеpичной) системы в десятичную?
При переводе числа из
двоичной (восьмеричной, шестнадцатеричной) системы в десятичную надо это число
представить в виде суммы степеней основания его системы счисления.
Примеpы:
9. Сводная таблица переводов целых чисел
из одной системы счисления в другую
Рассмотрим
только те системы счисления, которые применяются в компьютерах – десятичную,
двоичную, восьмеричную и шестнадцатеричную.
Для определённости возьмём произвольное
десятичное число, например 46, и для него выполним все возможные
последовательные переводы из одной системы счисления в другую (табл. 1.2).
Таблица
1.2
Сводная таблица переводов
целых чисел
Порядок переводов определим в
соответствии с рисунком (рис. 1.1):
На
этом рисунке использованы следующие обозначения:
·
в кружках записаны основания систем
счисления;
·
стрелки указывают направление перевода;
·
номер рядом со стрелкой означает
порядковый номер соответствующего примера в сводной таблице 1.2.
Например:
означает перевод из
двоичной системы в шестнадцатеричную, имеющий в таблице порядковый номер 6.
Рисунок
1
10. Как производятся арифметические операции
в позиционных системах счисления?
Рассмотрим
основные арифметические операции: сложение, вычитание, умножение и деление.
Правила выполнения этих операций в десятичной системе хорошо известны – это сложение,
вычитание, умножение столбиком и деление углом. Эти правила применимы и ко всем
другим позиционным системам счисления. Только таблицами сложения и умножения
надо пользоваться особыми для каждой системы.
Сложение
Таблицы
сложения легко составить, используя Правило счёта.
Таблица 1.3
Сложение
в двоичной системе
Таблица
1.4
Сложение
в восьмеричной системе
Таблица
1.5
Сложение
в шестнадцатеричной системе
При сложении цифры
суммируются по разрядам, и если при этом возникает избыток, то он переносится
влево.
Пример 1. Сложим числа 15 и 6 в
различных системах счисления.
Шестнадцатеричная:
F16+616
|
Ответ:
15 + 6 = 2110 = 101012 = 258 = 1516.
Проверка. Преобразуем полученные суммы к десятичному виду:
101012 = 24 + 22 + 20 = 16 + 4 +
1 =21;
258 = 2 × 81 + 5 × 80 = 16 + 5 = 21;
1516 = 1 × 161 + 5 × 160 = 16 + 5 = 21.
|
Пример 2. Сложим числа 15, 7 и 3.
Шестнадцатеричная:
F16 + 716 + 316
|
Ответ:
5 + 7 + 3 = 2510 = 110012 = 318 = 1916.
Проверка:
110012 = 24 + 23 + 20 = 16 + 8 +
1 = 25;
318 = 3 × 81 + 1 × 80 = 24 + 1 = 25;
1916 = 1 × 161 + 9 × 160 = 16 + 9 = 25.
|
Пример 3. Сложим числа 141,5 и 59,75.
Ответ: .
Проверка. Преобразуем полученные суммы
к десятичному виду:
11001001,012 = 27
+ 26 + 23 + 20 + 2-2 = 201,25;
311,28 = 3 × 82 + 1 × 81 + 1 × 80 + 2 × 8-1 = 201,25;
C9,416 = 12 × 161 + 9 × 160 + 4 × 16-1 = 201,25.
Вычитание
Пример 4. Вычтем единицу из
чисел 102, 108 и 1016.
Пример 5. Вычтем единицу из чисел 1002,
1008 и 10016.
Пример 6. Вычтем число 59,75 из числа
201,25.
Ответ: 201,2510 – 59,7510
= 141,510 = 10001101,12 = 215,48 = 8D,816.
Проверка. Преобразуем полученные
разности к десятичному виду:
10001101,12
= 27 + 23 + 22 + 20 + 2–1
= 141,5;
215,48 = 2*82 + 1*81 + 5*80 + 4*8–1
= 141,5;
8D,816 = 8*161 + D*160 + 8*16–1 =
141,5.
Умножение
Выполняя
умножение многозначных чисел в различных позиционных системах счисления, можно
использовать обычный алгоритм перемножения чисел в столбик, но при этом
результаты перемножения и сложения однозначных чисел необходимо заимствовать из
соответствующих рассматриваемой системе таблиц умножения и сложения.
Таблица
1.6
Умножение
в двоичной системе
|
Таблица
1.7
Умножение
в восьмеричной системе
|
Ввиду чрезвычайной простоты
таблицы умножения в двоичной системе, умножение сводится лишь к сдвигам
множимого и сложениям.
Пример 7. Перемножим числа 5 и 6.
Ответ: 5 × 6 = 3010 = 111102
= 368.
Проверка. Преобразуем полученные произведения
к десятичному виду:
11102 = 24 + 23
+ 22 + 21 = 30;
368 = 3 × 81 + 6 × 80 = 30.
Пример 8. Перемножим числа 115 и 51.
Ответ: 115 × 51 = 586510 =
10110111010012 = 133518.
Проверка. Преобразуем полученные произведения
к десятичному виду:
10110111010012 = 212
+ 210 + 29 + 27 + 26 + 25
+ 23 + 20 = 5865;
133518 = 1 × 84 + 3 × 83 + 3 × 82 + 5 × 81 + 1 × 80 = 5865.
Деление
Деление
в любой позиционной системе счисления производится по тем же правилам, как и
деление углом в десятичной системе. В двоичной системе деление выполняется
особенно просто, ведь очередная цифра частного может быть только нулём или
единицей.
Пример 9. Разделим число 30 на число
6.
Ответ: 30 : 6 = 510 = 1012
= 58.
Пример 10. Разделим число 5865 на число
115.
Восьмеричная: 133518 :1638
Ответ: 5865 : 115 = 5110 =
1100112 = 638.
Проверка. Преобразуем полученные
частные к десятичному виду:
1100112 = 25
+ 24 + 21 + 20 = 51; 638 = 6 × 81 + 3 × 80 = 51.
Пример 11. Разделим число 35 на число
14.
Восьмеричная: 438 : 168
Ответ: 35 : 14 = 2,510 = 10,12
= 2,48.
Проверка. Преобразуем полученные частные к
десятичному виду:
10,12 = 21 + 2 -1
= 2,5;
2,48 = 2 × 80 + 4 × 8-1 = 2,5.
11. Как представляются в компьютере целые числа?
Целые
числа могут представляться в компьютере со знаком или без знака.
Целые числа без знака обычно занимают в памяти
один или два байта и принимают в однобайтовом формате значения от 000000002
до 111111112, а в двубайтовом формате – от 00000000 000000002
до 11111111 111111112.
Таблица 1.8
Диапазоны значений целых
чисел без знака
Формат
числа
в байтах
|
Диапазон
|
запись
с порядком
|
обычная
запись
|
1
|
0
... 28–1
|
0
... 255
|
2
|
0
... 216–1
|
0
... 65535
|
Примеры:
а) число 7210 =
10010002 в однобайтовом формате:
б) это же число в двубайтовом
формате:
в) число 65535 в двубайтовом
формате:
Целые числа со знаком обычно занимают в памяти
компьютера один, два или четыре байта, при этом самый левый (старший) разряд
содержит информацию о знаке числа. Знак “плюс” кодируется нулём, а “минус” –
единицей.
Таблица
1.9
Диапазоны
значений целых чисел со знаком
Формат
числа
в байтах
|
Диапазон
|
запись
с порядком
|
обычная
запись
|
1
|
-27
... 27–1
|
-128
... 127
|
2
|
-215
... 215–1
|
-32768
... 32767
|
4
|
-231...
231–1
|
-2147483648
... 2147483647
|
Рассмотрим особенности записи
целых чисел со знаком на примере однобайтового формата, при котором для
знака отводится один разряд, а для цифр абсолютной величины – семь разрядов.
В компьютерной технике
применяются три формы записи (кодирования) целых чисел со знаком: прямой
код, обратный код, дополнительный код.
Последние две формы
применяются особенно широко, так как позволяют упростить конструкцию арифметико-логического
устройства компьютера путём замены разнообразных арифметических операций
операцией cложения.
Положительные
числа в прямом, обратном и дополнительном кодах изображаются
одинаково – двоичными кодами с цифрой 0 в знаковом разряде.
Например:
Отрицательные числа в прямом, обратном и
дополнительном кодах имеют разное изображение.
1. Прямой код.
В знаковый разряд помещается цифра 1, а в разряды цифровой части числа –
двоичный код его абсолютной величины. Например:
2. Обратный код.
Получается инвертированием всех цифр двоичного кода абсолютной величины числа,
включая разряд знака: нули заменяются единицами, а единицы – нулями. Например:
3. Дополнительный код. Получается образованием обратного
кода с последующим прибавлением единицы к его младшему разряду. Например:
Обычно отрицательные десятичные числа при вводе в машину автоматически преобразуются в обратный или дополнительный двоичный код и в таком виде хранятся,
перемещаются и участвуют в операциях. При выводе таких чисел из машины
происходит обратное
преобразование в
отрицательные десятичные числа.
12. Как компьютер выполняет арифметические действия
над целыми числами?
Сложение и вычитание
В
большинстве компьютеров операция вычитания не используется. Вместо неё
производится сложение уменьшаемого с обратным или дополнительным кодом
вычитаемого. Это позволяет существенно упростить конструкцию АЛУ.
При сложении обратных кодов
чисел А и В имеют место четыре основных и два особых случая:
1.
А и
В положительные. При суммировании складываются все разряды, включая разряд знака. Так как
знаковые разряды положительных слагаемых равны нулю, разряд знака суммы тоже
равен нулю. Например:
Получен правильный результат.
2. А положительное, B отрицательное и по абсолютной
величине больше, чем А.
Например:
Получен правильный результат
в обратном коде. При переводе в прямой код биты цифровой части результата
инвертируются: 10000111 = – 710.
3. А положительное, B
отрицательное и по абсолютной величине меньше, чем А. Например:
Компьютер исправляет
полученный первоначально неправильный результат (6 вместо 7) переносом
единицы из знакового разряда в младший разряд суммы.
4. А и В отрицательные.
Например:
Полученный
первоначально неправильный результат (обратный код числа –1110
вместо обратного кода числа –1010) компьютер исправляет переносом
единицы из знакового разряда в младший разряд суммы.
При переводе результата в
прямой код биты цифровой части числа инвертируются: 1 0001010 = –1010.
При сложении может возникнуть
ситуация, когда старшие разряды результата операции не помещаются в отведённой
для него области памяти. Такая ситуация называется переполнением разрядной
сетки формата числа. Для обнаружения переполнения и оповещения о возникшей
ошибке в компьютере используются специальные средства. Ниже приведены два
возможных случая переполнения.
5. А
и В положительные, сумма А+В больше либо равна 2n–1,
где n – количество разрядов формата чисел (для однобайтового формата n
= 8, 2n–1 = 27 = 128). Например:
Семи
разрядов цифровой части числового формата недостаточно для размещения
восьмиразрядной суммы (16210 = 101000102), поэтому старший
разряд суммы оказывается в знаковом разряде. Это вызывает несовпадение знака
суммы и знаков слагаемых, что является свидетельством переполнения разрядной
сетки.
6. А и В отрицательные,
сумма абсолютных величин А и В больше либо равна 2n–1.
Например:
Здесь знак суммы тоже не совпадает
со знаками слагаемых, что свидетельствует о переполнении разрядной сетки.
Все эти
случаи имеют место и при сложении дополнительных кодов чисел:
1. А и В положительные.
Здесь нет отличий от случая 1, рассмотренного для обратного кода.
2. А положительное, B
отрицательное и по абсолютной величине больше, чем А. Например:
Получен правильный результат
в дополнительном коде. При переводе в прямой код биты цифровой части результата
инвертируются и к младшему разряду прибавляется единица: 1 0000110 + 1 = 1
0000111 = –710.
3. А положительное, B
отрицательное и по абсолютной величине меньше, чем А. Например:
Получен правильный результат.
Единицу переноса из знакового разряда компьютер отбрасывает.
4. А и В отрицательные.
Например:
Получен правильный результат
в дополнительном коде. Единицу переноса из знакового разряда компьютер отбрасывает.
Случаи переполнения для дополнительных кодов
рассматриваются по аналогии со случаями 5 и 6 для обратных кодов.
Сравнение рассмотренных форм
кодирования целых чисел со знаком показывает:
·
на преобразование отрицательного числа в
обратный код компьютер затрачивает меньше времени, чем на преобразование в
дополнительный код, так как последнее состоит из двух
шагов – образования обратного кода и прибавления единицы к его младшему
разряду;
·
время выполнения сложения для
дополнительных кодов чисел меньше, чем для их обратных кодов,
потому что в таком сложении нет переноса единицы из знакового разряда в младший
разряд результата.
Умножение и деление
Во
многих компьютерах умножение производится как последовательность сложений и
сдвигов. Для этого в АЛУ имеется регистр, называемый накапливающим сумматором,
который до начала выполнения операции содержит число ноль. В процессе
выполнения операции в нём поочередно размещаются множимое и результаты
промежуточных сложений, а по завершении операции – окончательный
результат.
Другой регистр АЛУ,
участвующий в выполнении этой операции, вначале содержит множитель. Затем по
мере выполнения сложений содержащееся в нём число уменьшается, пока не
достигнет нулевого значения.
Для иллюстрации умножим
1100112 на 1011012.
Деление для компьютера является
трудной операцией. Обычно оно реализуется путём многократного прибавления к
делимому дополнительного кода делителя.
13. Как представляются в компьютере вещественные числа?
Вещественными числами (в отличие от целых)
в компьютерной технике называются числа, имеющие дробную часть.
При их написании вместо
запятой принято писать точку. Так, например, число 5 – целое, а числа 5,1 и 5,0
– вещественные.
Для удобства отображения
чисел, принимающих значения из достаточно широкого диапазона (то есть как очень
маленьких, так и очень больших), используется форма записи чисел с порядком
основания системы счисления. Например, десятичное число 1,25 можно в этой форме
представить так:
1,25 × 100 = 0,125 × 101 = 0,0125 × 102 = ... ,
или так:
12,5 × 10–1 = 125,0 × 10–2 = 1250,0 × 10–3 = ... .
Любое число N в
системе счисления с основанием q можно записать в виде N = M × qp, где M
называется мантиссой числа, а p – порядком. Такой способ
записи чисел называется представлением с плавающей точкой.
Если “плавающая” точка
расположена в мантиссе перед первой значащей цифрой, то при фиксированном
количестве разрядов, отведённых под мантиссу, обеспечивается запись
максимального количества значащих цифр числа, то есть максимальная точность
представления числа в машине. Из этого следует: мантисса должна быть правильной
дробью, первая цифра которой отлична от нуля: M из [0.1, 1).
Такое, наиболее выгодное для
компьютера, представление вещественных чисел называется нормализованным.
Мантиссу и порядок q-ичного числа принято
записывать в системе с основанием q, а само основание – в десятичной
системе.
Примеры нормализованного
представления:
Десятичная
система
Двоичная система
753,15 = 0,75315 × 103;
-101,01 = -0,10101 × 211 (порядок 112 = 310);
-0,000034 = -0,34 × 10-4;
-0,000011 = 0,11 × 2-100 (порядок -1002 = -410).
Вещественные
числа в компьютерах различных типов записываются по-разному. При этом компьютер
обычно предоставляет программисту возможность выбора из нескольких числовых
форматов наиболее подходящего для конкретной задачи – с использованием четырёх,
шести, восьми или десяти байтов.
В
качестве примера приведём характеристики форматов вещественных чисел,
используемых IBM-совместимыми персональными компьютерами (табл. 1.10):
Таблица
1.10
Форматы
вещественных чисел
|
Размер
в байтах
|
Примерный
диапазон
абсолютных
значений
|
Количество
значащих
десятичных цифр
|
Одинарный
|
4
|
10-45...
1038
|
7
или 8
|
Вещественный
|
6
|
10-39...
1038
|
11
или 12
|
Двойной
|
8
|
10-324...
10308
|
15
или 16
|
Расширенный
|
10
|
10-4932...
104932
|
19
или 20
|
Из этой таблицы видно, что форма
представления чисел с плавающей точкой позволяет записывать числа с высокой
точностью и из весьма широкого диапазона.
При хранении числа с
плавающей точкой отводятся разряды для мантиссы, порядка, знака числа и знака
порядка:
Рисунок
2
·
чем больше разрядов отводится под запись
мантиссы, тем выше точность представления числа;
·
чем
больше разрядов занимает порядок, тем шире диапазон от наименьшего отличного от
нуля числа до наибольшего числа, представимого в машине при заданном формате.
Покажем
на примерах, как записываются некоторые числа в нормализованном виде в
четырёхбайтовом формате с семью разрядами для записи порядка.
1. Число 6,2510 =
110,012 = 0,11001 × 211:
Рис.
1.3
2. Число –0,12510
= –0,0012 = –0,1 × 2–10 (отрицательный порядок записан в дополнительном коде):
Рисунок
4
14. Как компьютер выполняет арифметические действия
над нормализованными числами?
К
началу выполнения арифметического действия операнды операции помещаются в
соответствующие регистры АЛУ.
Сложение и вычитание
При
сложении и вычитании сначала производится подготовительная операция, называемая
выравниванием порядков.
В процессе выравнивания
порядков мантисса числа с меньшим порядком сдвигается в своём регистре вправо
на количество разрядов, равное разности порядков операндов. После каждого
сдвига порядок увеличивается на единицу.
В результате выравнивания
порядков одноимённые разряды чисел оказываются расположенными в соответствующих
разрядах обоих регистров, после чего мантиссы складываются или вычитаются.
В случае необходимости
полученный результат нормализуется путём сдвига мантиссы результата влево.
После каждого сдвига влево порядок результата уменьшается на единицу.
Пример 1. Сложить двоичные
нормализованные числа 0,10111 × 2–1 и 0,11011 × 210. Разность
порядков слагаемых здесь равна трём, поэтому перед сложением мантисса первого
числа сдвигается на три разряда вправо:
Пример 2. Выполнить вычитание двоичных
нормализованных чисел 0,10101 × 210 и 0,11101 × 21. Разность
порядков уменьшаемого и вычитаемого здесь равна единице, поэтому перед
вычитанием мантисса второго числа сдвигается на один разряд вправо:
Результат получился ненормализованным,
поэтому его мантисса сдвигается влево на два разряда с соответствующим
уменьшением порядка на две единицы: 0,1101 × 20.
Умножение
При умножении двух
нормализованных чисел их порядки складываются, а мантиссы перемножаются.
Пример 3. Выполнить умножение двоичных
нормализованных чисел:
(0,11101 × 2101) × (0,1001 × 211) = (0,11101 × 0,1001) × 2(101+11) =
0,100000101 × 21000.
Деление
При делении двух нормализованных
чисел из порядка делимого вычитается порядок делителя, а мантисса делимого
делится на мантиссу делителя. Затем в случае необходимости полученный результат
нормализуется.
Пример 4. Выполнить деление двоичных
нормализованных чисел:
0,1111 × 2100 : 0,101 × 211 = (0,1111 : 0,101) × 2(100–11) = 1,1 × 21 = 0,11 × 210.
Использование представления
чисел с плавающей точкой существенно усложняет схему арифметико-логического
устройства.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.