- •Информатика (Часть -1)
- •Информатика (Часть -1)
- •Содержание
- •Введение
- •1. Информация и информатика
- •Список вопросов для повторения материала раздела
- •2. Информационные процессы в системах управления
- •3. История развития информационных процессов
- •Вопросы для повторения
- •4. Меры и единицы измерения информации
- •4.1. Мера информации синтаксического уровня
- •4.2. Меры информации семантического уровня
- •4.3. Меры информации прагматического уровня
- •4.4. Достоверность информации
- •5.1. Системы счисления
- •5.2. Перевод чисел в системах счисления
- •5.2.1. Перевод двоичных чисел в восьмеричную и шестнадцатеричную системы счисления
- •5.2.2. Перевод чисел из восьмеричной и шестнадцатеричной систем счисления в двоичную систему счисления
- •5.2.3. Перевод чисел в десятичную систему счисления
- •5.2.4. Перевод целых чисел из десятичной системы счисления в систему счисления с основанием q
- •5. 2.5. Перевод дробных чисел из десятичной системы счисления в систему счисления с произвольным основанием
- •5.3. Представление числовой информации в памяти эвм
- •5.3.1. Хранение в эвм целых неотрицательных чисел
- •5.3.2. Представление целых отрицательных чисел
- •5.3.3. Хранение в эвм дробных чисел
- •Вопросы для повторения
- •5.4. Кодирование символьной и графической информации
- •5.4.1. Кодирование символьной информации
- •5.4.2. Кодирование звуковой и видеоинформации
- •Вопросы и задачи для повторения
- •6. Выполнение арифметических операций над числами в различных системах счисления
- •6.1. Выполнение сложения
- •6.2. Выполнение вычитания
- •Так как 1001011001 меньше числа 1011000111, то вычитание произведем из числа 1011000111. Вычтем из него число 1001011001, а к разности припишем знак «-»:
- •6.3. Выполнение умножения
- •6.4. Выполнение деления
- •6.5. Использование дополнительного кода
- •6.6. Выполнение операций при использовании формата хранения с плавающей точкой
- •Вопросы и задачи для повторения материала
- •Федеральный закон Российской Федерации от 27 июля 2006 г. N 149-фз Об информации, информационных технологиях и о защите информации.
5.3.3. Хранение в эвм дробных чисел
Для хранения дробных чисел используется нормализованное двоичное число с плавающей точкой, представимое произведением двух сомножителей: мантиссы и характеристики:
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.
Нормализация мантиссы при ограниченном числе битов памяти, отводимых для хранения, обеспечивает запись максимального количества значащих цифр числа, т.е. максимальную точность представления числа.
Нормализованные двоичные числа с плавающей точкой хранятся в четырех (одинарная точность, короткий формат) или в восьми (двойная точность, длинный формат) последовательных байтах.
Представление нормализованного двоичного числа с плавающей точкой включает в себя:
знак числа (мантиссы);
значение порядка;
значение мантиссы.
Рассмотрим хранение дробного числа в коротком формате (рис. 5.7).
Зн |
Порядок |
Мантисса |
|||||||||||||||||||||||||||||
|
Первый байт |
|
Второй байт |
Третий байт |
Четвертый байт |
||||||||||||||||||||||||||
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 |
Рис. 5.7
Знак числа (на рисунке он обозначен символом «Зн») представлен одним битом и равен 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,
где m – точность перевода, количество разрядов дробной части искомого числа; n + 1 – количество разрядов целой части искомого двоичного числа (n – номер старшего разряда). Для того чтобы определить точность перевода m, необходимо перевести целую часть исходного числа в двоичную систему счисления, определить номер старшего разряда n полученного двоичного числа и затем воспользоваться выражением для определения точности перевода.
-
Значение десятичного исходного числа по абсолютной величине, не меньшей единицы. Для определения точности перевода в этом случае необходимо подсчитать количество нулей 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.
-
Размещение нормализованного двоичного числа с плавающей точкой в памяти.
Пример 5.23. Представим в коротком формате десятичное число 6.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. Размещение нормализованного двоичного числа с плавающей точкой в памяти (рис. 5.8, шестнадцатеричное представление числа 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 |
а |
Рис. 5.8