Математические основы функционирования ЭВМ

Тема 3. Математические основы функционирования ЭВМ.

  1. Кодирование информации в ЭВМ.
    1. Системы счисления; их классификация; правила перевода чисел из одной позиционной системы счисления в другую.
    2. Представление текстовой информации в памяти ЭВМ.
    3. Представление графической информации в памяти ЭВМ.
    4. Представление звуковой информации в памяти ЭВМ.
    5. Представление числовой информации в памяти ЭВМ.

  1. Кодирование информации в ЭВМ.

Код – условное обозначение объекта цифровыми или алфавитно-цифровыми знаками по определенным правилам, установленным системой кодирования. Кодирование – процесс присвоения условных обозначений (кодов). Алфавит кодирования – полный набор кодов.

Способ кодирования зависит от цели, ради которой оно осуществляется. Это может быть сокращение записи, засекречивание (шифровка) информации или, наоборот, достижение взаимопонимания. От того, как представлена информация, зависит способ ее обработки, хранения и передачи.

Работа современных компьютеров основана на электрических импульсах: импульс либо есть, либо его нет. Условно наличие и отсутствие импульсов представляют так называемой двоичной кодировкой: 1 – есть импульс, 0 – нет импульса.

Компьютер работает с дискретной (цифровой) информацией. Память компьютера состоит из отдельных битов, а значит, дискретна. Датчики, посредством которых воспринимается информация, измеряют в основном непрерывные характеристики – температуру, нагрузку, напряжение и т.д. Встает проблема преобразования аналоговой информации в дискретную форму.

Идея дискретизации непрерывного сигнала заключается в следующем. Пусть имеется некоторый непрерывный сигнал. Можно допустить, что на маленьких промежутках времени значение характеристик этого сигнала постоянно и меняется мгновенно в конце каждого промежутка. «Нарезав» весь временной интервал на эти маленькие кусочки и взяв на каждом из них значение характеристик, получим сигнал с конечным числом значений. Таким образом, он станет дискретным. Непрерывная величина часто ассоциируется с графиком функции, а дискретная – с таблицей ее значений.

Такой процесс называется оцифровкой аналогового сигнала, а преобразование информации – аналого-цифровым преобразованием. Точность преобразования зависит от величины дискретности: чем меньше дискретность, тем ближе цифровая информация к качеству аналоговой. При этом возрастает количество вычислений и объем информации.

  1. Системы счисления; их классификация; правила перевода из одной позиционной системы счисления в другую.

Система счисления – это способ представления чисел и соответствующие ему правила действия над числами. Знаки, используемые при записи чисел, называются цифрами. Системы счисления делятся на позиционные и непозиционные.

Непозиционные – это системы счисления, в которых значение цифры не зависит от ее места в коде числа. Примером может служить римская система счисления, в которой в качестве цифр используются буквы латинского алфавита.

Цифры римской системы счисления

I

V

X

L

C

D

M

1

5

10

50

100

500

1000

Особенности непозиционных систем счисления: в них нет числа «нуль»; количество цифр не ограничено.

Позиционными называются системы счисления, в которых значение цифры зависит от ее места в коде числа. Примером позиционной системы является десятичная система. Основание – количество цифр, используемых в позиционной системе счисления. Алфавит – множество цифр, используемых для записи чисел в позиционной системе счисления. Если n10, то используют первые n арабских цифр, а при n>10 к ним добавляют буквы латинского алфавита.

Примеры позиционных систем счисления

Основание

Название

Алфавит

n = 2

двоичная

0 1

n = 3

троичная

0 1 2

n = 8

восьмеричная

0 1 2 3 4 5 6 7

n = 10

десятичная

0 1 2 3 4 5 6 7 8 9

n = 16

шестнадцатеричная

0 1 2 3 4 5 6 7 8 9 A B C D E F

Правила перевода чисел из одной позиционной системы счисления в другую.

Объекты перевода

Правило

1

Для перевода необходимо поделить число N на число p нацело. Неполное частное снова делим на число р и так продолжаем до тех пор, пока неполное частное не станет меньше р. Искомое число получим, поставив первой цифрой последнее неполное частное и записав все остатки от деления в обратном порядке.

2

Для перевода необходимо умножить число N на число р. Целая часть произведения есть первая цифра после запятой в результате. Продолжаем умножать дробную часть на число р до тех пор, пока она не станет равна нулю или пока не получим заданную точность. При каждом следующем умножении целую часть предыдущего произведения следует обнулить.

3

Для перевода смешанного числа необходимо представить его в виде суммы целой и дробной частей, перевести каждую часть отдельно, а затем сложить.

4

Для перевода необходимо представить число N в развернутом виде по степеням числа р и найти значение выражения.

5

Для перевода необходимо заменить каждую цифру числа N группой из трех (четырех) цифр в двоичной системе по таблице 4 (по таблице 5).

6

Для перевода необходимо разбить число N влево и вправо от запятой на группы по три (четыре) цифры и заменить каждую группу двоичных цифр одной цифрой из таблицы 4 (таблицы 5).

8-ая
система

2-ая
система

16-ая
система

2-ая
система

16-ая
система

2-ая
система

0

000

0

0000

8

1000

1

001

1

0001

9

1001

2

010

2

0010

A

1010

3

011

3

0011

B

1011

4

100

4

0100

C

1100

5

101

5

0101

D

1101

6

110

6

0110

E

1110

7

111

7

0111

F

1111

  1. Двоичное кодирование текстовой информации.

Минимальным элементом текста является символ. Для хранения кода одного символа стандартно отводится 1 байт информации, с помощью которого можно записать 256 различных символов, входящих в компьютерный алфавит. Кодирование заключается в том, что каждому символу ставится в соответствие уникальный десятичный код от 0 до 255 или соответствующий ему двоичный код от 00000000 до 11111111. Присвоение символу конкретного кода – это вопрос соглашения, которое фиксируется в кодовой таблице.

Стандартной кодовой таблицей является таблица ASCII (American Standart Code for Information Interchange – стандартный американский код для информационного обмена). В базовой части таблицы (коды от 0 до 127) находятся прописные и строчные буквы латинского алфавита, цифры, знаки препинания, знаки арифметических действий, непечатаемые символы. В расширенной таблице (коды от 128 до 255) – прописные и строчные буквы русского алфавита, знаки препинания, символы псевдографики. Для представления символов кириллицы используется так называемая «альтернативная кодировка». Сейчас существует несколько различных кодовых таблиц для русских букв: КОИ-8, СР-1251, СР-866, Mac, ISO, Windows 1251.

Применяется еще одна кодировка – Unicode. В ней на хранение одного символа отводится 2 байта (16 бит) информации. Соответственно можно закодировать 65536 символов. Это латинский алфавит, кириллица, иврит, африканские и азиатские языки, математические, экономические, технические символы, знаки денежных единиц, метеорологические знаки и т.д.

Главный недостаток этой кодировки состоит в том, что все тексты становятся в 2 раза длиннее.

  1. Двоичное кодирование графической информации.

При кодировании графическое изображение разбивается на множество точек, за каждой из которых закреплен свой цвет. Качество кодирования зависит от двух параметров. Во-первых, качество кодирования изображения тем выше, чем меньше размер точки и соответственно больше самих этих точек. Во-вторых, чем большее количество цветов используется, тем качественнее кодируется изображение. Совокупность используемых в наборе цветов образует палитру цветов.

Графическая информация на экране монитора представляется в виде растрового изображения, которое формируется из определенного количества строк, которые в свою очередь содержат определенное количество точек (пикселей). Цветные изображения формируются в соответствии с двоичным кодом цвета каждой точки, хранящимся в видеопамяти. Количество бит, отводимых под хранение информации о цвете одной точки, называется битовой глубиной или глубиной цвета (k). Количество цветов в палитре определяется по формуле: N = 2k

Цветное изображение формируется за счет смешивания трех базовых цветов: красного, зеленого и синего. Такая цветовая модель называется RGB-моделью. Затем базовым цветам задается различная интенсивность, за счет этого появляются оттенки этих цветов.

В полиграфических системах используется модель CMYK.

  1. Двоичное кодирование звуковой информации.

Звук – это колебания среды, непрерывный сигнал с меняющейся амплитудой. При кодировании этот сигнал нужно представить в виде последовательности нулей и единиц.

В процессе кодирования непрерывного звукового сигнала производится его временная дискретизация. Через равные промежутки времени (десятки тысяч раз в секунду) измеряется амплитуда колебаний. Каждое измерение производится с ограниченной точностью и записывается в двоичном коде. Частота, с которой записывается амплитуда, называется частотой дискретизации.

Качество двоичного кодирования звука зависит от глубины кодирования (количество бит, отводимых для хранения информации об амплитуде во время каждого замера) и частоты дискретизации.

Для стереозвука записываются данные отдельно для левого и правого канала.

  1. Двоичное кодирование числовой информации.

Целые числа:

Стандартно на хранение одного целого числа отводится 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

  1. 0000 0000 1010 1111 – прямой код числа 175
  2. 1111 1111 0101 0000 – обратный код
  3. 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.

  1. Переведем число в двоичную систему счисления с 24 значащими цифрами 250,187510 = 11111010,00110000000000002
    1. Запишем в форме нормализованного двоичного числа с плавающей точкой: 0,111110100011000000000000 * 1021000.
    2. Вычислим машинный порядок: S2 = 1000000 + 1000 = 1001000.
    3. Запишем представление числа в 4-байтовой ячейке памяти с учетом знака числа: 0 10010001 11110100011000000000000 или в шестнадцатеричной форме 48FA3000.

Пример: по шестнадцатеричной форме внутреннего представления числа в форме с плавающей точкой C9811000.

  1. Перейдем к двоичному представлению:
    110010011000000100010000000000002
  2. Т.к. в старшем бите стоит 1, то число отрицательное. Получим порядок числа: Р = 1001001 – 1000000 = 10012 = 910.
  3. Запишем в форме нормализованного двоичного числа с плавающей точкой с учетом знака числа: -0, 100000010001000000000000 * 21001.
  4. В естественной форме число имеет вид: -100000010,0012.
  5. Переведем число в десятичную систему счисления: -100000010,0012 =
    = -258,12510

Сложение чисел с плавающей запятой выполняется по следующему алгоритму:

  1. Представить числа А и В в нормализованном виде, записав отдельно значения мантисс и порядков.
  2. Выровнять порядки по числу с большим порядком.
  3. Выровнять число цифр в мантиссах по числу, порядок которого не изменился.
  4. Сложить числа.
  5. Нормализовать сумму, оставив число цифр в мантиссе таким, как у числа, порядок которого не изменялся.

PAGE 1

Математические основы функционирования ЭВМ