- •4. Представление чисел в компьютере
- •5. Представление графической информации
- •1. Информация и информатика.
- •2. Кодирование и измерение информации.
- •2.1. Вероятностный подход к измерению информации.
- •2.2. Символьный подход к измерению информации
- •3. Некоторые сведения о системах счисления.
- •4. Представление чисел в компьютере
- •4.1. Представление целых чисел в компьютере
- •Перед полученным числом поставим знак «-» Ответ: -105
- •Например, 0,55555•103 Чтобы привести к какому-то стандарту в представлении чисел с плавающей запятой условились представлять числа в нормализованной форме. При этом мантисса отвечает условию:
- •4.4. Арифметические операции с числами в формате с плавающей запятой.
- •5. Представление графической информации
- •6. Логические основы компьютеров
- •7. Технические средства реализации информационных процессов
- •8. Программное обеспечение компьютеров
- •9. Компьютерные сети
- •10. Основы защиты информации
- •Методы и средства защиты информации
4.4. Арифметические операции с числами в формате с плавающей запятой.
Использование смещенной формы позволяет производить операции над порядками, как над беззнаковыми числами, что упрощает операции сравнения, сложения и вычитания порядков, а также упрощает операцию сравнения самих нормализованных чисел.
Алгоритм сложения и вычитания чисел в формате с плавающей запятой:
Провести выравнивание порядков
Сложить или вычесть мантиссы.
Привести полученное число к стандартному формату с плавающей запятой путем нормализации.
Процедура выравнивания порядков: порядок меньшего (по модулю) числа увеличивается до величины порядка большего (по модулю) числа. Чтобы величина числа не изменилась, мантисса уменьшается в такое же количество раз (сдвигается в ячейке памяти вправо на количество разрядов, равное разности порядков чисел).
Процедура нормализации: сдвиг мантиссы влево или вправо так, чтобы ее первая значащая цифра попала в первый разряд после запятой.
Алгоритм умножения чисел в формате с плавающей запятой:
1. Сложить порядки
2. Перемножить мантиссы
Алгоритм деления чисел в формате с плавающей запятой:
1. Из порядка делимого вычесть порядок делителя
2. Мантиссу делимого делить на мантиссу делителя.
Рассмотрим несколько примеров.
1. Произвести сложение чисел 0,1×23 и 0,1×25 в формате с плавающей запятой.
Решение. Произведем выравнивание порядков и сложение мантисс:
0,1×23 = Х×25 , Х=(0,1×23)/ 25=0,1×2-2=0,001
0,001×25
+0,100×25
0,101×25 Ответ: 0,101×25
2. Произвести умножение чисел 0,1×23 и 0,1×25 в формате с плавающей запятой.
Решение: После умножения будет получено число 0,01×28, которое после нормализации примет вид 0,1×27. Ответ: 0,1×27.
3. Произвести сложение, вычитание, умножение и деление чисел 0,1×22 и 0,1×2-2 в формате с плавающей запятой.
Решение: Произведем выравнивание порядков и сложение мантисс:
0,1×2-2 = Х × 22 , Х = ( 0,1×2-2 )/ 22= 0,1×2-4 = 0,00001
0,10000 ×22
+0,00001 ×22
0,10001×25
Произведем вычитание мантисс и процедуру нормализации:
0,10000 ×22
- 0,00001 ×22
0,01111×22 = 0,1111×21
Используем алгоритм умножения: сложим порядки и перемножим мантиссы.
0,10000 ×22
х 0,00001 ×22
0,000001 ×24 , нормализуем ответ 0,1×2-1
Используем алгоритм деления чисел в формате с плавающей запятой: из порядка делимого вычесть порядок делителя, мантиссу делимого делить на мантиссу делителя.
0,10000 ×22
: 0,00001 ×22
10 000 ×20, нормализуем ответ 0,1×25
Ответ: 0,10001×25; 0,1111×21; 0,1×2-1 ; 0,1×25
Заключительные замечания
Чем больше разрядов отводится под запись мантиссы, тем выше точность представления числа. Чем больше разрядов занимает порядок, тем шире диапазон от наименьшего отличного от нуля числа до наибольшего числа, представимого в машине при заданном формате.
Стандартные форматы представления вещественных чисел:
1) одинарный — 32-разрядное нормализованное число со знаком, 8-разрядным смещенным порядком и 24-разрядной мантиссой (старший бит мантиссы, всегда равный 1, не хранится в памяти, и размер поля, выделенного для хранения мантиссы, составляет только 23 разряда).
2) двойной — 64-разрядное нормализованное число со знаком, 11-разрядным смещенным порядком и 53-разрядной мантиссой (старший бит мантиссы не хранится, размер поля, выделенного для хранения мантиссы, составляет 52 разряда).
3) расширенный — 80-разрядное число со знаком, 15-разрядным смещенным порядком и 64-разрядной мантиссой. Позволяет хранить ненормализованные числа.
Следует отметить, что вещественный формат с m-разрядной мантиссой позволяет абсолютно точно представлять m-разрядные целые числа, т. е. любое двоичное целое число, содержащее не более m разрядов, может быть без искажений преобразовано в вещественный формат.
Вещественные числа в компьютерах различных типов записываются по-разному. При этом компьютер обычно предоставляет программисту возможность выбора из нескольких числовых форматов наиболее подходящего для конкретной задачи — с использованием четырех, шести, восьми или десяти байтов.
В качестве примера приведем характеристики форматов вещественных чисел, используемых в персональных компьютерах:
Форматы вещественных чисел |
Размер в байтах |
Примерный диапазон абсолютных значений |
Количество значащих десятичных цифр |
Одинарный |
4 |
10–45 … 1038 |
7 или 8 |
Вещественный |
6 |
10–39 … 1038 |
11 или 12 |
Двойной |
8 |
10–324 … 10308 |
15 или 16 |
Расширенный |
10 |
10–4932 … 104932 |
19 или 20 |
Из этой таблицы видно, что форма представления чисел с плавающей точкой позволяет записывать числа с высокой точностью и из весьма широкого диапазона. При хранении числа с плавающей точкой отводятся разряды для мантиссы, порядка, знака числа и знака порядка:
чем больше разрядов отводится под запись мантиссы, тем выше точность представления числа.
чем больше разрядов занимает порядок, тем шире диапазон от наименьшего отличного от нуля числа до наибольшего числа, представимого в машине при заданном формате.