Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Комплекс лекций.doc
Скачиваний:
120
Добавлен:
14.04.2019
Размер:
1.04 Mб
Скачать

Лекция 2. Кодирование информации, системы счисления и основы логики. Кодирование информации. Системы счисления. Представление информации в эвм. Алгебра логики.

(3 час)

Понятие системы счисления.

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

Классификация систем счисления.

Все системы делятся на позиционные и непозиционные.

В непозиционных системах каждая цифра имеет свой вес и ее значение не зависит от положения в числе — от позиции. Пример — римская система. Скажем, число 76 в этой системе выглядит так:

LXXVI, где L=50, X=10, V=5, I=1.

Как видно цифрами здесь служат латинские символы.

В позиционных системах значения цифр зависят от их положения (позиции) в числе.

Так, например, человек привык пользоваться десятичной позиционной системой — числа записываются с помощью 10 цифр. Самая правая цифра обозначает единицы, левее — десятки, ещё левее — сотни и т.д.

В любой позиционной системе число может быть представлено в виде многочлена.

Покажем, как представляют в виде многочлена десятичное число.

,

а теперь с дробью

Обобщим это представление на случай использования другого набора цифр.

Основанием системы счисления называется количество цифр и символов, применяющихся для изображения числа. Например р=10.

База системы — это последовательность цифр, используемых для записи числа. Ни в одной системе нет цифры, равной основанию системы.

В настоящее время арифметические действия выполняются в десятичной системе, где р=10.

База этой системы 0,1,2,3,4,5,6,7,8,9,0.

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

Установлено, что, чем больше основание СС, тем компактнее запись числа. Так двоичное изображение числа требует примерно в 3,3 раза больше­го количества цифр, чем его десятичное представление. Рассмотрим два чис­ла: 97D = 1100001В. Двоичное представление числа имеет заметно большее количество цифр.

Несмотря на то что десятичная СС имеет широкое распространение, цифровые ЭВМ строятся на двоичных (цифровых) элементах, так как реали­зовать элементы с десятью четко различимыми состояниями сложно. В другой системе счисления могут работать приборы декатрон и трохотрон. Декатрон — газоразрядная счетная лампа — многоэлектродный газоразрядный прибор тлеющего разряда для индикации числа импульсов в десятичной СС.

Указанные устройства не нашли применения для построения средств ВТ. Историческое развитие вычислительной техники сложилось таким обра­зом, что цифровые ЭВМ строятся на базе двоичных цифровых устройств (триггеров, регистров, счетчиков, логических элементов и т. п.).

Шестнадцатеричная и восьмеричная СС используются при составле­нии программ на языке машинных кодов для более короткой и удобной за­писи двоичных кодов— команд, данных, адресов и операндов. Перевод из двоичной СС в шестнадцатеричную и восьмеричную СС (и обратно) осуще­ствляется достаточно просто.

Задача перевода из одной системы счисления в другую часто встреча­ется при программировании и особенно часто при программировании на языке Ассемблера. Например, при определении адреса ячейки памяти, для получения двоичного или шестнадцатеричного эквивалента десятичного числа. Отдельные стандартные процедуры языков программирования Пас­каль, Бейсик, HTML и Си требуют задания параметров в шестнадцатеричной системе счисления. Для непосредственного редактирования данных, запи­санных на жесткий диск, также необходимо умение работать с шестнадцатеричными числами. Отыскать неисправность в ЭВМ практически невозможно без представлений о двоичной системе счисления .Без двоичной СС невоз­можно понять принципы криптографии и стеганографии.

Двоичная система счисления.

Представление информации с помощью двоичного кодирования наиболее оптимально для ЭВМ, так как данные в ЭВМ передаются по проводам с помощью двух сигналов "Есть напряжение" и "нет напряжения". Поскольку все данные в ЭВМ кодируются числами, то для передачи их по проводам необходимо применять двоичную систему.

Двоичная система имеет основание р=2 и базу 0 и 1. То есть, для изображения числа используются только два знака. Попробуем посчитать в десятичной системе, а затем в двоичной системе.

10-я

2-я

10-я

2-я

10-я

2-я

10-я

2-я

1

1

6

110

11

1011

16

10000

2

10

7

111

12

1100

17

10001

3

11

8

1000

13

1101

18

10010

4

100

9

1001

14

1110

19

10011

5

101

10

1010

15

1111

20

10100

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

Для перевода десятичного числа в двоичную систему отдельно переводят дробную и целую части.

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

Например:

164

2

164

82

2

0

82

41

2

0

40

20

2

1

20

10

2

0

10

5

2

0

4

2

2

1

2

1

0

В результате 16510=101001002.

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

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

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

Например,

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

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

210=102

310=112

410=1002

510=1012

610=1102

710=1112

Например,

101001,1102+

110,0112=

110000,0012

101010,11112+

1011,11012=

110110,11002

Если в результате промежуточного действия, которое человек автоматически выполняет в десятичной системе получилось число большее единицы, то его необходимо перевести в двоичную систему. Так в первом примере складывает справа налево 0+1=1, 1+1=210=102. Следовательно, в результате оставляем 0 (правый разряд результата), а 1 (левый разряд результата) запоминаем в следующем разряде и т.д.

Умножение двоичных чисел происходит также, как и для десятичных, только используются две цифры 0 и 1. Например, умножаем двоичные числа:

1001,1

110,1

10011

00000

10011

10011

11110,111

Таким образом, умножение двоичных чисел сводится к сдвигу и сложению.

Системы счисления родственные двоичной.

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

Система называется родственной двоичной, если ее основание является степенью числа 2. К таким системам относятся четверичная, восьмеричная и шестнадцатеричная. Мы рассмотрим восьмеричную и шестнадцатиричную системы.

Восьмеричная система.

Основание р=8. База — цифры от 0 до 7.

Посчитаем в восьмеричной системе и сравним ее с десятичной.

10-я

8-я

10-я

8-я

10-я

8-я

10-я

8-я

0

0

5

5

10

12

15

17

1

1

6

6

11

13

16

20

2

2

7

7

12

14

17

21

3

3

8

10

13

15

18

22

4

4

9

11

14

16

19

23

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

2-а

8-я

2-я

8-я

000

0

100

4

001

1

101

5

010

2

110

6

011

3

111

7

Для восьмеричного числа перевода в двоичную систему нужно каждую цифру представить ее двоичным эквивалентом согласно таблице.

Пример: 567,238=101 110 111, 010 0112.

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

Пример: 1110100,1111012=001 110 100 111 1012=164,758.

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

Пример: 98610=17328.

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

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

Пример:

Шестнадцатеричная система.

Основание р=16. База — цифры от 0 до 9 и буквы A,B,C,D,E,F.

Посчитаем в этой системе

10-я

16-я

10-я

16-я

10-я

16-я

10-я

16-я

0

0

9

9

18

12

27

1B

1

1

10

A

19

13

28

1C

2

2

11

B

20

14

29

1D

3

3

12

C

21

15

30

1E

4

4

13

D

22

16

31

1F

5

5

14

E

23

17

32

20

6

6

15

F

24

18

33

21

7

7

16

10

25

19

34

22

8

8

17

11

26

1A

35

23

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

2-а

8-я

2-я

8-я

0000

0

1000

8

0001

1

1001

9

0010

2

1010

A

0011

3

1011

B

0100

4

1100

C

0101

5

1101

D

0110

6

1110

E

0111

7

1111

F

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

Пример: 56,А816=101 0110, 1010 10002.

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

Пример: 111 0100 1110 0111, 11012=74E7,D16.

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

Пример: 98610=3DA16.

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

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

Пример:

Арифметические действия с восьмеричными

и шестнадцатеричными числами.

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

7568+4528=14308

1А516+С3516=DDA16

7458+3638=13308

1F416+91116=B0516.

Представление чисел в ЭВМ. Прямой, обратный и дополнительный коды.

В ВТ, с целью упрощения реализации арифметических операций, применяют специальные коды. За счет этого облегчается определение знака результата операции, а операция вычитания чисел сводится к арифметиче­скому сложению. В результате упрощаются устройства, выполняющие арифметические операции.

В ВТ применяют прямой, обратный и дополнительный коды.

Прямой двоичный код Рпр(х) — это такое представление двоичного числа х, при котором знак «+» кодируется нулем в старшем разряде числа, а знак «-» — единицей. При этом старший разряд называется знаковым.

Например, числа +5D и -5D, представленные в прямом четырехразрядном коде, выглядят так: +5D = 0'101 В; -5D = 1'101. Здесь апострофом условно (для удобства определения знака) отделены знаковые разряды.

Обратный код Робр(х) получается из прямого кода по следующему правилу:

Из приведённого выражения видно, что обратный код для положительных чисел совпадает с прямым кодом. Чтобы представить отрицательное двоичное число в обратном коде, нужно оставить в знаковом разряде 1, во всех значащих разрядах заменить 1 на 0, а 0 на 1. Такая операция называется инвертированием и обозначается горизонтальной чертой над инвертируемым выражением

Пример 4. Получить обратный код для числа .х =-11D.

Решение.

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

Дополнительный код Рдоп(х) образуется следующим образом:

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

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

Пример 5. Получить дополнительный код для числа

х = -13D.

Решение.

Pnp(x) = (1'1101) прямой код

Робр(х) =(1’0010) обратный код

Рдоп(х ) = (1’0011) дополнительный код.

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

Пример 6. Выполнить алгебраическое сложение с использованием дополнительного кода для чисел х1 =7D х2- -3D.

Решение.

Необходимо найти сумму: у = х1 + х2.

Учитывая, что х1 >0, это число нужно представить в прямом коде, а так как х2 < О, то х2 нужно перевести в дополнительный код.

Так как результат положителен (в знаковом разряде Р(у) — 0), значит, он представлен в прямом коде. После перевода двоичного числа в десятич­ную СС получим ответ: у = +4D.

Пример 7. Выполнить алгебраическое сложение с использованием дополнительного кода для чисел X; = 8D и х2 - -13D.

Необходимо найти сумму: у = x1 + х2.

Число х1 нужно представить в прямом коде, а х2 — в дополнительном коде.

В знаковом разряде стоит единица, и, значит, результат получен в до­полнительном коде. Для перехода от дополнительного кода

Рдоп(у)=1’1011В к прямому коду Рпр(у) необходимо выполнить следующие преобразования:

Робр(y) = Рдоп(у) -1 =1’1011-1=1’1010

Рпр(y) = Робр(y) = 1’Инв(1010) = 1’0101В. Переходя от двоичной СС к десятичной СС, получим ответ: у = -5D.

Представление в ЭВМ целых чисел.

Целые числа без знака

Обычно занимают в памяти компьютера один или два байта. В однобайтовом формате принимают значения от 000000002 до 111111112 = 255 В двубайтовом формате - от 00000000 000000002 до 11111111 111111112=65535

Примеры:

а) число 7210 = 10010002 в однобайтовом формате:

б) это же число в двубайтовом формате:

в) число 65535 в двубайтовом формате:

Целые числа со знаком

Обычно занимают в памяти компьютера один, два или четыре байта, при этом самый левый (старший) разряд содержит информацию о знаке числа.

Диапазоны значений целых чисел со знаком:

1байт -27 ... 27-1 -128 ... 127

2 байт -215 ... 215-1 -32768 ... 32767

4 байт -231 ... 231-1 -2147483648 ... 2147483647

Рассмотрим особенности записи целых чисел со знаком на примере однобайтового формата, при котором для знака отводится один разряд, а для цифр абсолютной величины - семь разрядов.

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

Арифметические действия с целыми числами.

В большинстве компьютеров операция вычитания не используется. Вместо нее производится сложение обратных или дополнительных кодов уменьшаемого и вычитаемого. Это позволяет существенно упростить конструкцию АЛУ.

Сложение обратных кодов. Здесь при сложении чисел А и В имеют место четыре основных и два особых случая:

1. А и В положительные. При суммировании складываются все разряды, включая разряд знака. Так как знаковые разряды положительных слагаемых равны нулю, разряд знака суммы тоже равен нулю. Например:

Получен правильный результат.

2. А положительное, B отрицательное и по абсолютной величине больше, чем А. Например:

Получен правильный результат в обратном коде. При переводе в прямой код биты цифровой части результата инвертируются: 1 0000111 = -710.

3. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Например:

Компьютер исправляет полученный первоначально неправильный результат (6 вместо 7) переносом единицы из знакового разряда в младший разряд суммы.

4. А и В отрицательные. Например:

Полученный первоначально неправильный результат (обратный код числа -1110 вместо обратного кода числа -1010) компьютер исправляет переносом единицы из знакового разряда в младший разряд суммы. При переводе результата в прямой код биты цифровой части числа инвертируются: 1 0001010 = -1010.

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

5. А и В положительные, сумма А+В больше, либо равна 2n-1, где n — количество разрядов формата чисел (для однобайтового формата n=8, 2n-1 = 27 = 128). Например:

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

6. А и В отрицательные, сумма абсолютных величин А и В больше, либо равна 2n-1. Например:

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

Сложение дополнительных кодов. Здесь также имеют место рассмотренные выше шесть случаев:

1. А и В положительные. Здесь нет отличий от случая 1, рассмотренного для обратного кода.

2. А положительное, B отрицательное и по абсолютной величине больше, чем А. Например:

Получен правильный результат в дополнительном коде. При переводе в прямой код биты цифровой части результата инвертируются и к младшему разряду прибавляется единица: 1 0000110 + 1 = 1 0000111 = -710.

3. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Например:

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

4. А и В отрицательные. Например:

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

Случаи переполнения для дополнительных кодов рассматриваются по аналогии со случаями 5 и 6 для обратных кодов.

Сравнение рассмотренных форм кодирования целых чисел со знаком показывает:

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

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

Представление в ЭВМ вещественных чисел.

Система вещественных чисел в математических вычислениях предполагается непрерывной и бесконечной, т.е. не имеющей ограничений на диапазон и точность представления чисел. Однако в компьютерах числа хранятся в регистрах и ячейках памяти с ограниченным количеством разрядов. В следствие этого система вещественных чисел, представимых в машине, является дискретной (прерывной) и конечной.

При написании вещественных чисел в программах вместо привычной запятой принято ставить точку. Для отображения вещественных чисел, которые могут быть как очень маленькими, так и очень большими, используется форма записи чисел с порядком основания системы счисления. Например, десятичное число 1.25 в этой форме можно представить так:

1.25*100 = 0.125*101 = 0.0125*102 = ...

или так:

12.5*10-1 = 125.0*10-2 = 1250.0*10-3 = ... .

Любое число N в системе счисления с основанием q можно записать в виде N = M*qp, где M — множитель, содержащий все цифры числа (мантисса), а p — целое число, называемое порядком. Такой способ записи чисел называется представлением числа с плавающей точкой.

Если "плавающая" точка расположена в мантиссе перед первой значащей цифрой, то при фиксированном количестве разрядов, отведённых под мантиссу, обеспечивается запись максимального количества значащих цифр числа, то есть максимальная точность представления числа в машине. Из этого следует:

Мантисса должна быть правильной дробью, у которой первая цифра после точки (запятой в обычной записи) отлична от нуля: 0.12 <= |M| < 1. Если это требование выполнено, то число называется нормализованным

Мантиссу и порядок q-ичного числа принято записывать в системе с основанием q, а само основание — в десятичной системе. Примеры нормализованного представления:

753.15 = 0.75315*103;

— 0.000034 = — 0.34*10-4;

—101.01 = —0.10101*211 (порядок 112 = 310)

0.000011 = 0.11*2-100 (порядок —1002 = —410).

Вещественные числа в компьютерах различных типов записываются по-разному, тем не менее, все компьютеры поддерживают несколько международных стандартных форматов, различающихся по точности, но имеющих одинаковую структуру следующего вида:

Здесь порядок n-разрядного нормализованного числа задается в так называемой смещенной форме: если для задания порядка выделено k разрядов, то к истинному значению порядка, представленного в дополнительном коде, прибавляют смещение, равное (2k-1 — 1). Например, порядок, принимающий значения в диапазоне от —128 до +127, представляется смещенным порядком, значения которого меняются от 0 до 255.

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

Чем больше разрядов отводится под запись мантиссы, тем выше точность представления числа. Чем больше разрядов занимает порядок, тем шире диапазон от наименьшего отличного от нуля числа до наибольшего числа, представимого в машине при заданном формате.

Стандартные форматы представления вещественных чисел:

  1. одинарный — 32-разрядное нормализованное число со знаком, 8-разрядным смещенным порядком и 24-разрядной мантиссой (старший бит мантиссы, всегда равный 1, не хранится в памяти, и размер поля, выделенного для хранения мантиссы, составляет только 23 разряда).

  2. двойной — 64-разрядное нормализованное число со знаком, 11-разрядным смещенным порядком и 53-разрядной мантиссой (старший бит мантиссы не хранится, размер поля, выделенного для хранения мантиссы, составляет 52 разряда).

  3. расширенный — 80-разрядное число со знаком, 15-разрядным смещенным порядком и 64-разрядной мантиссой. Позволяет хранить ненормализованные числа.

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

Арифметические действия с вещественными числами.

При сложении и вычитании сначала производится подготовительная операция, называемая выравниванием порядков.

В процессе выравнивания порядков мантисса числа с меньшим порядком сдвигается в своем регистре вправо на количество разрядов, равное разности порядков операндов. После каждого сдвига порядок увеличивается на единицу.

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

Пример 1. Сложить двоичные нормализованные числа 0.10111*2-1 и 0.11011*210. Разность порядков слагаемых здесь равна трем, поэтому перед сложением мантисса первого числа сдвигается на три разряда вправо:

Пример 2. Выполнить вычитание двоичных нормализованных чисел 0.10101*210 и 0.11101*21. Разность порядков уменьшаемого и вычитаемого здесь равна единице, поэтому перед вычитанием мантисса второго числа сдвигается на один разряд вправо:

Результат получился не нормализованным, поэтому его мантисса сдвигается влево на два разряда с соответствующим уменьшением порядка на две единицы: 0.1101*20.

При умножении двух нормализованных чисел их порядки складываются, а мантиссы перемножаются.

Пример 3. Выполнить умножение двоичных нормализованных чисел:

(0.11101*2101)*(0.1001211) = (0.11101*0.1001) . 2(101+11) = 0.100000101*21000.

При делении двух нормализованных чисел из порядка делимого вычитается порядок делителя, а мантисса делимого делится на мантиссу делителя. Затем в случае необходимости полученный результат нормализуется.

Пример 4. Выполнить деление двоичных нормализованных чисел:

0.1111*2100/0.101*211 = (0.1111/0.101)*2(100-11) = 1.1*21 = 0.11*210.

Использование представления чисел с плавающей точкой существенно усложняет схему арифметико-логического устройства.

Лекция 3

Вычислительная система. Универсальный компьютер (архитектура фон Неймана). Классификация ЭВМ. Организация современной вычислительной системы на примере ПК. Программное обеспечение ЭВМ. Классификация ПО.

(4 часа)

Работа компьютера основана на алгебраической системе логики, разработанной в XIX в. английским математиком-самоучкой Джорджем Булем. Буль старался решить вопрос, над которым за сто лет до него размышлял Лейбниц, — как подчинить логику математике. Он надеялся, что его система, "очистив словесные аргументы от словесной шелухи", облегчит поиск правильного заключения и сделает его всегда достижимым. Рассмотрим основные положения этой системы.

Высказывание — это любое предложение, в отношении которого имеет смысл утверждение об его истинности или ложности. При этом считается, что высказывание или истинно, или ложно и не может быть одновременно и истинным, и ложным. Примеры высказываний:

"Май — весенний месяц" — это истинное утверждение;

"2+3=6" — ложное утверждение;

"Вася — самый высокий человек в классе" — это утверждение может быть как истинным, так и ложным.

В алгебре логики все высказывания обозначаются буквами а, b, с и т. д., что позволяет манипулировать ими подобно тому, как в математике манипулируют обычными числами.

Над высказываниями могут выполняться следующие логические операции:

операция ИЛИ — логическое сложение,

операция И — логическое умножение,

операция НЕ — отрицание.

Результаты этих операций определяются по правилам, указанным в следующей таблице:

а

b

а ИЛИ b

а И b

НЕ а

Истинно

Истинно

Ложно

Ложно

Истинно

Ложно

Истинно

Ложно

Истинно

Истинно

Истинно

Ложно

Истинно

Ложно

Ложно

Ложно

Ложно

Ложно

Истинно

Истинно

Используя логические операции, можно получить более сложные высказывания. Например, если мы обозначим высказывания

5<3, х=1, 7=7

соответственно буквами а, b, и с, то высказывание "а И b И с" будет ложным, независимо от значения х. А высказывание "а ИЛИ b ИЛИ с" — истинно при любом значении х.

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

Логические действия двоичны по своей сути. Они оперируют лишь с двумя сущностями: "истина" или "ложь", "да" или "нет", "открыт" или "закрыт", нуль или единица, называемыми логическими значениями.