
- •Информатика (Часть -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