
- •Тема 3. Математические основы функционирования эвм.
- •Кодирование информации в эвм.
- •Системы счисления; их классификация; правила перевода из одной позиционной системы счисления в другую.
- •Двоичное кодирование текстовой информации.
- •Двоичное кодирование графической информации.
- •Двоичное кодирование звуковой информации.
- •Двоичное кодирование числовой информации.
Двоичное кодирование числовой информации.
Целые числа:
Стандартно на хранение одного целого числа отводится 2 байта (16 бит) информации. С помощью 2 байт можно закодировать 216 = 65536 чисел. Но так как целые числа бывают отрицательные и положительные, то 65536 делим пополам. Таким образом, диапазон целых чисел – [-32768; 32767].
Чтобы получить двоичное представление положительного целого числа, нужно записать его в прямом коде. Для этого число переводим в двоичную систему счисления и приписываем впереди нужное количество нулей, чтобы получилось 16-разрядное машинное слово.
Пример: 17510
17510=128+32+8+4+2+1=101011112
0000 0000 1010 1111 или 00АF – прямой код (машинное представление числа 175).
Чтобы получить двоичное представление отрицательного целого числа, нужно: 1) получить прямой код модуля этого числа; 2) получить обратный код заменой нулей на единицы и единиц на нули в прямом коде; 3) получить дополнительный код прибавлением к обратному единицы.
Пример: - 17510
0000 0000 1010 1111 – прямой код числа 175
1111 1111 0101 0000 – обратный код
1111 1111 0101 0001 – дополнительный код (машинное представление числа 175).
Отметим, что у положительных чисел первый разряд в коде ноль, а у отрицательных – единица.
Пример: дано шестнадцатеричное представление целого числа ABCD. Найти это число.
ABCD16 = 10101011110011012;
Так как в старшем разряде стоит 1, то данное число отрицательное, а код дополнительный.
1010101111001101 – дополнительный код
1010101111001100 – обратный код
0101010000110011 – прямой код
1010100001100112 = 214 + 212 +210 + 25 + 24 + 21 + 20 = 16384 + 4096 + 1024 + 32 + 16 + 2 + 1 = 21555
Ответ: - 21555.
Сложение чисел производится в дополнительных кодах поразрядно. При выполнении арифметических операций число может выйти за указанные границы. Произойдет переполнение разрядной сетки, поэтому при работе с большими числами под них выделяется больше места, например 4 байта. Чтобы избежать ситуации переполнения, в языках программирования предусмотрено строгое описание типа переменной, которым определяется набор возможных ее значений. При выходе за границы допустимых значений возникает ошибка выполнения программы.
Вычитание целых чисел эквивалентно сложению с отрицательным числом. Операция вычитания выполняется как сложение с дополнительным кодом вычитаемого. Умножение двоичных чисел сводится к двум операциям: сложения и сдвига. Первый множитель складывается сам с собой столько раз, сколько единиц содержится во втором множителе. Каждый шаг итерации содержит очередной сдвиг влево на один двоичный разряд и прибавление первого множителя, если соответствующий разряд второго множителя содержит 1, и сдвиг без прибавления, если в таком разряде 0. Операция деления для целых чисел однозначно не определена, поскольку в общем случае приводит к появлению вещественных чисел.
Пример: 175 – 123 = 175 + (- 123)
17510 = 101011112
0000 0000 1010 1111 – прямой код
12310 = 11110112
0000 0000 0111 1011 – прямой код
1111 1111 1000 0100 – обратный код
1111 1111 1000 0101 – дополнительный код
0000 0000 1010 1111
1111 1111 1000 0101
0000 0000 0011 0100 = 32 + 16 + 4 = 52 (Т.к. в старшем разряде 0, то число положительное).
Вещественные числа.
Значения вещественных чисел в памяти ЭВМ являются приближенными. Для получения большей точности применяется запись чисел с плавающей точкой:
где m – мантисса числа,
P – основание системы счисления,
n – порядок, указывающий, на какое количество позиций и в каком направлении должна сместиться точка, отделяющая дробную часть в мантиссе.
При работе с числами в языках программирования и вычислительных системах используется экспоненциальная форма записи:
где Е – десятичное основание системы.
Для
увеличения количества значащих цифр в
числе мантиссу подвергают нормализации.
Нормализация означает, что мантисса
должна находиться в интервале
Метод представления вещественных чисел в памяти ЭВМ предполагает хранение двух чисел: мантиссы и порядка. Чем больше разрядов отводится под запись мантиссы, тем выше точность представления числа. Чем больше разрядов отводится под порядок, тем шире диапазон чисел.
Рассмотрим размещение вещественных чисел в памяти компьютера, если на хранение одного числа отводится 4 байта памяти.
Запись вещественного числа имеет структуру следующего вида: старший бит старшего байта отводится для хранения знака числа (0 – положительное, 1 – отрицательное), 7 следующих битов – для хранения порядка, 24 бита – для хранения мантиссы.
Пример: получить машинное представление числа 250,1875.
Переведем число в двоичную систему счисления с 24 значащими цифрами 250,187510 = 11111010,00110000000000002
Запишем в форме нормализованного двоичного числа с плавающей точкой: 0,111110100011000000000000 * 1021000.
Вычислим машинный порядок: Pm = 1000000 + 1000 = 1001000.
Запишем представление числа в 4-байтовой ячейке памяти с учетом знака числа: 0 10010001 11110100011000000000000 или в шестнадцатеричной форме 48FA3000.
Пример: по шестнадцатеричной форме внутреннего представления числа в форме с плавающей точкой C9811000 получить десятичное представление.
Перейдем к двоичному представлению: 110010011000000100010000000000002
Т.к. в старшем бите стоит 1, то число отрицательное. Получим порядок числа: Р = 1001001 – 1000000 = 10012 = 910.
Запишем в форме нормализованного двоичного числа с плавающей точкой с учетом знака числа: -0, 100000010001000000000000 * 21001.
В естественной форме число имеет вид: -100000010,0012.
Переведем число в десятичную систему счисления: -100000010,0012 = = -258,12510
Сложение чисел с плавающей запятой выполняется по следующему алгоритму:
Представить числа А и В в нормализованном виде, записав отдельно значения мантисс и порядков.
Выровнять порядки по числу с большим порядком.
Выровнять число цифр в мантиссах по числу, порядок которого не изменился.
Сложить числа.
Нормализовать сумму, оставив число цифр в мантиссе таким, как у числа, порядок которого не изменялся.