- •Информатика
- •Содержание
- •Лекция № 1. Информация и информатика
- •1. Понятие информации
- •2. Понятие информатики
- •Вопросы
- •Информационные процессы в системах управления
- •2. История развития информационных процессов
- •3. Проблемы развития информационных технологий
- •Мера информации синтаксического уровня
- •3. Меры информации семантического уровня
- •4. Меры информации прагматического уровня
- •Вопросы
- •4.1. Системы счисления
- •4.2. Перевод чисел в системах счисления
- •4.2.1. Перевод двоичных чисел в восьмеричную и шестнадцатеричную системы счисления
- •4.2.2. Перевод чисел из восьмеричной и шестнадцатеричной систем счисления в двоичную систему счисления
- •4.2.3. Перевод чисел в десятичную систему счисления
- •4.2.4. Перевод целых чисел из десятичной системы счисления в систему счисления с основанием q
- •Лекция № 5. Перевод дробных чисел. Хранение целых чисел
- •5.1. Перевод дробных чисел из десятичной системы счисления в систему счисления с основанием q
- •5.3. Хранение информации в памяти эвм
- •5.3.1. Хранение в эвм целых чисел
- •5.4. Представление целых отрицательных чисел
- •Обратный код числа
- •Вопросы
- •Дополнительный код. Представление дробных чисел.
- •6.2. Хранение в эвм дробных чисел
- •Вопросы
- •Кодирование символьной и графической информации
- •7.1. Кодирование символьной информации
- •7.2. Кодирование звуковой и видеоинформации
- •8.2. Выполнение вычитания
- •8.3. Выполнение умножения
- •8.4. Выполнение деления
- •6. 5. Использование дополнительного кода
- •Федеральный закон Российской Федерации от 27 июля 2006 г. N 149-фз Об информации, информационных технологиях и о защите информации.
6.2. Хранение в эвм дробных чисел
Для хранения дробных чисел используется нормализованное двоичное число с плавающей точкой, представимое произведением двух сомножителей: мантиссы и характеристики:
N = M (2 k)10 = M (10 k)2 ,
где M – мантисса числа; 2k – характеристика; k – порядок числа (целое число).
Мантисса числа является правильной дробью (|M| < 1). Мантисса содержит цифры числа, а с помощью порядка указывается положение разделительной точки.
Например, двоичное число 1011.012 можно представить следующим образом:
1011.012 = 0.01011012 (25)10.
Если в разряде с номером –1 мантиссы располагается единица (|M| = 0.1...), то число N имеет нормализованное представление.
Например, двоичное число 1011.012 имеет нормализованное представление:
1011.012 = 0.1011012 (24)10.
Нормализация мантиссы при ограниченном числе битов памяти, отводимых для хранения, обеспечивает запись максимального количества значащих цифр числа, т.е. максимальную точность представления числа.
Нормализованные двоичные числа с плавающей точкой хранятся в четырех (одинарная точность, короткий формат) или в восьми (двойная точность, длинный формат) последовательных байтах.
Представление нормализованного двоичного числа с плавающей точкой включает в себя:
-
знак числа (мантиссы);
-
значение порядка;
-
значение мантиссы.
Рассмотрим хранение дробного числа в коротком формате (рис. 6.1).
Зн |
Порядок |
Мантисса |
|||||||||||||||||||||||||||||
|
Первый байт |
|
Второй байт |
Третий байт |
Четвертый байт |
||||||||||||||||||||||||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
b |
Рис. 6.1
Знак числа (на рисунке он обозначен символом «Зн») представлен одним битом и равен 0, если число неотрицательное (положительное или 0), и равен 1, если число отрицательное.
Для хранения порядка выделяется 8 битов (7 битов первого байта и один старший бит второго байта числа). Порядок хранится в виде смещенного порядка. Для получения смещенного порядка необходимо воспользоваться выражением:
s = k + d,
где s – значение смещенного порядка, k – значение абсолютного порядка, d – смещение порядка (для короткого формата смещение порядка равно 127). Смещенный порядок хранится в формате целого двоичного числа с фиксированной точкой без знака. С помощью восьми битов можно представлять смещенный порядок от 0 до 255. Это означает, что значением абсолютного порядка нормализованного двоичного числа с плавающей точкой являются целые числа от 127 до 128. Использование смещенного порядка упрощает операции сравнения, сложения и вычитания над порядками, так как операции необходимо выполнять с неотрицательными числами.
Мантисса представляется в двоичной системе счисления и занимает 23 двоичных разряда (короткий формат). Старший разряд мантиссы (разряд с номером –1) не хранится, так как его значение у нормализованного числа всегда равно 1.
Чем больше разрядов отводится под запись мантиссы, тем выше точность представления чисел. Чем больше разрядов занимает порядок, тем больше вариация (разность между максимальным и минимальным числами) хранимых чисел.
Нормализованное число двойной точности представляет собой 64-разрядное нормализованное число со знаком, 11-разрядным смещенным порядком и 52-разрядной мантиссой (старший разряд мантиссы не хранится).
Для хранения чисел с плавающей точкой может использоваться также и расширенный формат, позволяющий хранить ненормализованные числа в виде 80-разрядного числа со знаком, 15-разрядным смещенным порядком и 64-разрядной мантиссой.
Процедура получения представления дробного числа в коротком формате, заданного в десятичной системе счисления, следующая:
-
Перевод исходного десятичного числа в двоичную систему счисления. При переводе необходимо определить точность перевода. Рассмотрим два случая.
-
Абсолютная величина исходного числа не меньше единицы. В этом случае точность перевода m определяется из равенства:
-
m + n + 1=25; m = 24 – n, (6.3)
где m – точность перевода, количество разрядов дробной части искомого числа; n + 1 – количество разрядов целой части искомого двоичного числа (n – номер старшего разряда). Для того чтобы определить точность перевода m, необходимо перевести целую часть исходного числа в двоичную систему счисления, определить номер старшего разряда n полученного двоичного числа и затем воспользоваться выражением (6.3) для определения точности перевода.
-
Значение десятичного исходного числа по абсолютной величине, не меньшей единицы. Для определения точности перевода в этом случае необходимо подсчитать количество нулей l, которые располагаются в дробной части искомого двоичного числа, расположенных между разделительной точкой и первым разрядом, равным единице. Эту единицу можно отыскать, просматривая искомое число от разделительной точки вправо (например, для числа 0.000011012 l = 4). Тогда точность перевода m будет определяться выражением:
m = l + 25.
-
Округление числа. Для того чтобы округлить число, необходимо к полученному двоичному числу прибавить единицу, по весу равную единице младшего разряда (2-m , где –m – номер младшего разряда двоичного числа). После выполнения сложения разряд с номером –m отбрасывается.
-
Нормализация числа. В результате нормализации числа необходимо получить мантиссу, которая будет располагаться на полусегменте от 0.5 до 1 – x: [0.5;1), т.е. x ≥ 0.5, но x < 1. Это достигается перемещением разделительной точки. Изменение значения числа компенсируется изменением порядка.
Примем значение порядка равным нулю и рассмотрим два случая.
-
Если значение числа не меньше 1, то разделительная точка перемещается влево.
При этом значение порядка возрастает на величину, равную количеству разрядов, на которых переместится разделительная точка.
-
Если исходное число меньше 0.5, то в этом случае разделительная точка перемещается вправо и значение порядка уменьшается на величину, равную количеству разрядов, на которых переместится разделительная точка.
В результате будет получено число. Целая часть числа равна нулю, а старший разряд мантиссы равен единице. Единицу старшего разряда мантиссы можно не хранить, ее всегда можно восстановить. Оставшаяся дробная часть мантиссы будет содержать 23 двоичного разряда. В результате нормализации будет также получен абсолютный порядок числа.
-
Нахождение смещенного порядка. Для нахождения смещенного порядка необходимо к найденному абсолютному порядку прибавить число 127, затем полученный смещенный порядок необходимо перевести в двоичную систему счисления и дополнить полученное двоичное число незначащими нулями до разрядности 8. Максимальное значение смещенного порядка равно 255. Минимальное значение смещенного порядка равно 0. Смещенный порядок – неотрицательное число и хранится в формате восьмиразрядного целого двоичного числа с фиксированной точкой без знака. Абсолютный порядок может принимать значение от 127 до +128.
-
Размещение нормализованного двоичного числа с плавающей точкой в памяти.
Пример 6.6. Представим в коротком формате десятичное число 10.6.
1. Перевод исходного десятичного числа 10.610 в двоичную систему счисления:
10.610= 1010.(1001)2 =1010.1001100110011001100112.
2. Округление числа:
1010.1001100110011001100112
+ 0.0000000000000000000012
1010.1001100110011001101002 .
3. Нормализация числа:
1010.100110011001100110102= 0.10101001100110011001101022410.
4. Нахождение смещенного порядка:
410 + 12610 = 13010 = 100000102.
5. Размещение нормализованного двоичного числа с плавающей точкой в памяти (рис. 6.2, шестнадцатеричное представление числа 4129999а в памяти).
Зн |
Порядок |
Мантисса |
|||||||||||||||||||||||||||||
|
Первый байт |
|
Второй байт |
Третий байт |
Четвертый байт |
||||||||||||||||||||||||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
4 |
1 |
2 |
9 |
9 |
9 |
9 |
а |
Рис. 6.2