ТЕМА1: ОСНОВЫ ПОСТРОЕНИЯ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

Вопросы:

1. Представление информации в компьютерах: символьной и числовой.

2. Программное управление компьютером.

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

4. Основы логических операций над информацией в компьютерных технологиях.

5. Закон Мура и перспективы развития информационно-компьютерных технологий.

 

Представление информации в компьютерах. Все современные ЭВМ оперируют с данными, представленными в двоичной форме, т.е. набором цифр {0,1}.

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

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

Количество двоичных разрядов в группе
Наименование единицы измерения бит байт параг-раф Кбайт Мбайт Гбайт Тбайт Экзабайт (Эбайт)

 

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

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

Пример К стандартам представления данных относят системы МТК 5, КОИ-8, ДКОИ-7, кодировки DOS, Widows-1251, код ASCII и т.д.

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

Например, с помощью одного байта можно записать 256 разных комбинаций с цифрами 0 и 1, что позволило создать одну из наиболее распространенных таблиц кодирования информации КОИ-8 (код обмена информацией длиной 8 бит).

Код Символ Код Символ Код Символ
(
)
+
- A
= B
C

Самая распространенная система кодирования латиницы - ASCII (American Standard Code for Information Interchange - Американский стандартный код обмена информацией) использует 7 бит/символ.

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

Коды от 0 до 127 соответствуют кодам ASCII. Коды для других символов получают представлением в диапазоне от 128 до 255. Таким образом, любой символ этих алфавитов представляется 8 битами или 1 байтом. В соответствии со стандартами ISO 8895-1 и ASCII таблица кодов содержит от 0 до 255 различных символов и разделена на две части (табл. 1):

­ основная часть (с кодами от 0 до 127) стандартизирована и содержит коды символов латиницы. Здесь первые две строки содержат управляющие коды, не относящиеся к текстовым элементам, сюда же включены знаки пунктуации, математические знаки, большие и малые латинские буквы;

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

Таблица 1 – Фрагмент таблицы ASCII

 
( ) * + , -
: ;
A B C D E
F G H I J K L M N O
P Q R S T U V W X Y
Z a b c
d e f g h i j k l m
n o p q r s t u v w
x y z А Б
В Г Д Е Ж З И Й К Л
М Н О П Р С Т У Ф Х
Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
а б в г д е ж з и й
к л м н о п
р с т у ф х
ц ч ш щ ъ ы ь э ю я
Ё ё Є є І і Ї ї    

В соответствии с таблицей буква «L» в ASCII кодируется как 76, буква «ж» - 166 и т.д.

Вопрос для проверки. Декодируйте текст:

а) с кода КОИ-8: а) с кода ASCII:
Ответ: 1+2=3   Ответ: Текст  
       

Однако для японского и китайского языков 256 кодов недостаточно. В этом случае используют многобайтовые кодировки (в частности, стандарт DBCS - Double Byte Character Set — набор символов, кодируемый двумя байтами).

Делалась попытка стандартизировать кодировку всех современных алфавитов и основных подмножеств иероглифики. В рамках этой программы был разработан Unicode, использующий 2-х байтовое представление текстовых элементов. Но эта попытка не имела успеха по следующим причинам:

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

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

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

При вводе информации с клавиатуры нажатие определенной клавиши вырабатывает scan-код – двоичное число, равное порядковому номеру клавиш. Причем номер клавиши не связан с формой символа, нанесенного на клавише. Определение символа и присвоение ему внутреннего кода ЭВМ проводится специальной программой по специальным таблицам: КОИ-8, ASCII.

Все числовые данные в компьютерах представляют в двоичной или двоично-десятичной системе счисления.

Счислением называется совокупность приемов наименования и обозначения чисел. Условные знаки, применяемые при обозначении чисел, называют цифрами. В системах счисления числа записывают как последовательности цифр.

Рассмотрим позиционную систему счисления.

В общем случае, основанием системы счисления называют число r –целое число, большее единицы. Выберем r попарно различных знаков: r-ичных цифр и r последовательных целых чисел, среди которых содержится нуль. Эту последовательность называют базой системы счисления. Здесь справедливо следующее правило:

Между r-ичными цифрами и числами базы установлено взаимно однозначное соответствие.

Выделяют позиционные системы счисления:

- с неотрицательной базой – системы счисления, состоящие из нуля и положительных чисел;

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

Пример Для десятеричной системы счисления основание , база неотрицательна и состоит из десяти последовательных целых чисел 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Для троичной позиционной системы счисления с симметричной базой основание системы счисления записывают как 10. Она состоит из трех различных чисел , 0, 1. Старшей цифрой отрицательного числа всегда является , а положительное число имеет в качестве старшей цифры 1.

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

. (1)

В последовательности (1) позиции, на которых стоят цифры, перенумерованы: позиции расположенные левее запятой, перенумерованы подряд справа налево числами 0, 1, 2 и т.д. представляют целую часть числа; позиции расположенные справа от запятой, перенумерованы подряд слева направо с помощью чисел -1, -2 и т.д. представляют дробную часть. Перенумерованные позиции в общем случае называют r-ичными разрядами числа.

Каждой цифре последовательности (1) приписано определенное значение. Цифра, стоящая в нулевом разряде, имеет своим значением соответствующее ей число базы. Цифра, стоящая в некотором разряде, имеет значение в r раз большее того, которое она имела бы в разряде с номером, меньшим на единицу (или значение в r раз меньшее того, которое она имела бы в разряде с номером, большее на единицу). Отсюда справедливо следующее правило:

последовательность r-ичных цифр обозначает число, равное сумме значений ее цифр.

Исходя из этого правила, последовательность r-ичных цифр (1) означает

(2)

где – коэффициенты, принимающие при отдельных разрядах числа значения 0, 1, …, ; - основание системы счисления; - количество цифр в дробной части числа; - количество цифр в целой части числа.

Пример. Для десятичной записи чисел основание системы счисления . В соответствии с выражением (2) число .

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

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

Пример. Перевести в десятичную систему счисления число 10111.

.

Вопрос для проверки. Записать в десятичной системе счисления число 101011 (ответ А10=43).

Числовую информацию в компьютере представляют:

­ с фиксированной точкой (запятой) – естественная форма;

­ с плавающей точкой – нормальная форма;

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

Фиксация точки позволяет точку в изображении числа опускать, например для 16-разрядного АЛУ получим (рис.1):

Рис. 1. Машинное представление числа с фиксированной точкой

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

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

В нормальной форме число считают приведенным к виду (полулогарифмической форме числа):

, (3)

где - мантисса числа ( ); - порядок; - основание рабочей системы счисления.

Пример. Записать двоичное число 101 в нормальной форме. Ответ , где , , основание системы счисления .

В машине число с плавающей точкой записывается в виде пары чисел

, (4)

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

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

,

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

В частности, для 32-разрядного АЛУ

Рис. 2. Число с плавающей двоичной точкой

Из рис. 2. видно, что под порядок выделяют 1 байт, где старший разряд порядка отводят под знак числа.

Нормальная форма представления имеет огромный диапазон отображения чисел и является основной в современных компьютерах. Количество операций с плавающей точкой в секунду (Floating Operations Per Second, FLOPS, в наше время чаше говорят о Mflops — миллионах операций в секунду), которые может исполнять процессор, является одной из важных его характеристик.

В общем случае двоично-кодированные системы образуются следующим образом.

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

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

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

. (6)

Из выражения (6) количество -разрядных двоичных чисел, неиспользуемых в качестве кодов r-ичных цифр, равно

. (7)

Это запрещенные комбинации нулей и единиц.

Сформируем десятичную двоично-кодированную систему счисления. Из выражения (6) найдем число разрядов для двоичных кодов числа

.

Четверки двоичных цифр, получаемые по вышеприведенному правилу, являются кодами десятичных цифр и называются тетрадами (табл. 2).

 

Таблица 2 – Двоично-десятичное представление чисел

Исходное множество символов десятичной системы счисления Разрешенные комбинации двоично-кодированных чисел

Пример. Представить десятичное число 893,2 в двоично-десятичной системе счисления.

1000 1001 0011, 0010.

Вопрос для проверки. Записать десятичное число 541,67 в двоично-десятичной системе счисления (Ответ: А2-10=0101 0100 0001, 0110 0111).

В двоично-десятичной системе счисления количество запрещенных комбинаций в соответствии с выражением (7) равно

.

Это комбинации (1010, 1011, 1100, 1101, 1110, 1111)2, кодирующие шестнадцатеричные цифры (A - F) (числа 1010 …1510).

Отметим, что запрещенные комбинации образуют область для выбора кодов знаков (см. табл. 3). В различных системах кодирования коды для знаков выбираются по-разному. Так, в «расширенном двоично-кодированном десятичном коде» (EBCDIC), используемой фирмой IBM, знак «+» обозначен через 1010, а знак «-» - через 1011. В коде ASCII знак «+» обозначен через 1100, а знак «-» - через 1101.

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

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

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

Рис. 3. Распакованный формат десятичных двоично-кодированных чисел

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

Рис. 4. Упакованный формат десятичных двоично-кодированных чисел

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

Двоично-десятичное представление чисел связано с обработкой больших массивов десятичных чисел (например, больших экономических документов). Перевод таких чисел из десятичной системы счисления в двоичную для последующей обработки и обратно – для вывода результата – требует выполнения 20 - 40 машинных команд. Нетрудно заметить, что применение упакованного формата двоично-десятичного представления позволяет добиться уменьшения количества используемых на цифру битов с 7 до 4, а значит, ускоряется процесс манипуляции с десятичными цифрами.

Пример.Представить число -193 в двоично-десятичной форме в распакованном и упакованной форматах.

Представим заданное число в двоично-десятичном коде

-193(10)=-0001 1001 0011(2-10).

Распакованный формат числа имеет следующий вид:

Упакованный формат числа запишем:

Вопросы для проверки. Представить число 528 в двоично-десятичной форме, записав его в упакованном и распакованном формате

Упакованный формат числа –

.

Распакованный формат числа –

.

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

В современных компьютерах могут обрабатываться поля постоянной и переменной длины. К полям постоянной длины относят:

- полуслово – 1 байт;

- слово – 2 байта;

- слово длиной 10 байт;

- двойное слово – 4 байта;

- расширенное слово – 8 байт.

Для чисел с фиксированной точкой чаще всего применяется формат слова или полуслова. Современные стандартные коды передачи информации, в частности код ASCII, используют форматы двойного слова (для 32-битового АЛУ) или расширенного слова (для 64-битового АЛУ) с соответственно 8 разрядами или 16 разрядами для порядка. Числа в этих форматах называют соответственно числами одинарнойи двойной точности.

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

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

Пример. Привести структурную запись числа -193, используя поля постоянной длины.

В двоичной системе счисления заданное число имеет вид:

-193(10)=-11000001(2).

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

- в естественной форме число со знаком представим следующим образом

  Символ знака Абсолютная величина числа
Номер разряда
Цифры числа

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

  Символ знака числа Порядок Мантисса
Номер разряда
Цифры числа

Вопросы для проверки. Привести структурную запись числа +112 (+1110000(2)), используя поля постоянной длины.

- естественная форма числа

  Символ знака Абсолютная величина числа
Номер разряда
Цифры числа

- нормальная форма числа

  Символ знака числа Порядок Мантисса
Номер разряда
Цифры числа

 

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

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

Команда машинной программы (машинная команда) – элементарная инструкция машине, выполняемая ею автоматически без каких-либо дополнительных указаний и пояснений. В машинной команде выделяют две части: операционную и адресную. Операционная часть команды – это группа разрядов в команде, предназначенная для представления кода операции машины. Адресная часть команды – это группа разрядов в команде, в которых записываются коды адреса (адресов) ячеек памяти машины, предназначенных для оперативного хранения информации (иных объектов), задействованных при выполнении команды. Часто эти адреса называют адресами операндов (чисел), участвующих в операции.

В общем случае, по количеству адресов, записываемых в команде, команды можно разделить на безадресные, одно-, двух- и трех адресные.

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

Типовая структура одноадресной команды представлена на рис. 5, а, где КОП – код операции; А1 в зависимости от модификации команды может обозначать либо адрес ячейки (регистра), где хранится одно из чисел, участвующих в операции, либо адрес ячейки (регистра), куда необходимо поместить результат операции.

Структура двух адресной команды приведена на рис. 5, б, где А1 – обычно адрес ячейки (регистра), где хранится первое из чисел, участвующих в операции, и куда после завершения операции необходимо записать ее результат; А2 – адрес ячейки (регистра), где хранится второе участвующее в операции число.

Типовая структура трехадресной команды содержит адреса трех ячеек (регистров) (рис. 5, в). При этом А1 и А2 – адреса ячеек (регистров), где расположены первое и второе числа, участвующие в операции; А3 – адрес ячейки (регистра), куда после завершения операции необходимо поместить число, полученное в результате выполнения операции.

а) б) в)
Рис. 5. Типовая структура машинных команд

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

.

Расшифруйте эту команду.

Эта двух адресная команда означает следующее: «Сложить число, записанное в ячейке памяти 0103, с числом, записанным в ячейке 5102. Результат суммирования поместить в ячейку 0103».

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

В качестве примера рассмотрим протокол Modbus, ориентированный на системы промышленной автоматизации, системы автоматизации зданий, многоточечные сети и пр. В табл. 4 приведены коды команд их описание и привязка входным/выходным регистрам устройства.

Код Описание Диапазон адресов Код Описание Диапазон адресов
Чтение текущего состояния выходов 00001 - 10000 Чтение входных регистров 30001 - 40000
Изменение состояния дискретного выхода 00001 - 10000 Запись одного регистра 40001 - 50000
Чтение регистров хранения 40001 - 50000 Запись нескольких регистров 40001 - 50000

Современные ЭВМ автоматически выполняют несколько сотен различных команд, например, в стандартном наборе персонального компьютера содержится около 240 машинных команд. Эти команды можно разделить на группы следующим образом:

- операции пересылки информации внутри ЭВМ;

- арифметические операции над информацией;

- логические операции над информацией;

- операции обращения к внешним устройствам ЭВМ;

- операции передачи управления (или ветвления программы);

- обслуживающие и вспомогательные операции.

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

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

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

 

Арифметические операции над информацией в компьютерных технологиях. Для всех без исключения ЭВМ арифметические операции выполняются над числами, представленными специальными машинными кодами. Их использование позволяет:

­ обрабатывать знаковые разряды чисел так же, как и значащие;

­ заменять операцию вычитания операцией сложения.

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

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

, (8)

где - знак числа; - двоичные цифры.

Прямым кодом числа называется целое ( )-разрядное число, определяемое формулой

(9)

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

­ следует отдельно обрабатывать значащие разряды чисел и разряды знака;

­ значение разряда знака влияет на алгоритм выполнения операции (сложение может заменяться вычитанием и наоборот).

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

(10)

где - инверсные значения .

Вопрос для проверки. Записать обратный код десятичных чисел ±0,375. (Ответ: , ).

Пусть есть некоторое двоичное число , записанное в соответствии с выражением (8). Дополнительным кодом числа называется целое ( )-разрядное число, определяемое формулой

(11)

где - инверсные значения .

Нетрудно заметить, что нуль при заданном значении имеет единственный дополнительный код, а именно

,

а сложение дополнительных кодов положительного числа с его отрицательным значением дает машинную единицу дополнительного кода:

МЕд=МЕо+20=10:000…0,

т.е. число 10 (два) в знаковом разряде числа.

Пример. Записать дополнительные коды чисел ±9,25.

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

,

.

Вопрос для проверки. Записать дополнительный код десятичных чисел ±23.

В дальнейшем при записи машинных кодов чисел знаковый разряд от значащих отделяем условным знаком «:».

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

Сложение двоичных чисел выполняется по тем же правилам, по которым мы привыкли складывать десятичные числа (табл. 5).

Таблица 5 – Двоичная таблица сложения одноразрядных чисел

А В Результат

Из таблицы видно, что результат сложения двух одноразрядных чисел является двухразрядным числом, соответственно, результат сложения двух -разрядных - -разрядным. Образующийся дополнительный бит называется битом переноса (carry bit).

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

Таблица 6 – Преобразование кодов при алгебраическом сложении

Требуемая операция Необходимое преобразование

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

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

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

Правило 2. Знаковые разряды чисел участвуют в сложении так же, как и значащие.

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

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

Значение «01» свидетельствует о положительном переполнении разрядной сетки при сложении положительных чисел, а «10» - об отрицательном переполнении при работе с отрицательными числами.

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

Операция сложения (вычитания) производится с преобразованием чисел в дополнительный код (обратный код использовать нельзя, т.к. «0» в таком представлении имеет двоякое значение) в следующей последовательности.

1. Сравниваются порядки (характеристики) исходных чисел путем их вычитания . При выполнении этой операции определяется, одинаковый ли порядок имеют исходные слагаемые.

2. Если разность порядков равна нулю, то это значит, что одноименные разряды мантисс имеют одинаковые веса (двоичный порядок). В противном случае должно проводиться выравнивание порядков.

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

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

5. Порядок результата берется равным большему порядку.

6. Если мантисса результата не нормализована, то осуществляются нормализация и коррекция порядка.

Пример. Сложить два числа А10=1,375 и В10=-0,625.

Представим числа в виде двоичных чисел с плавающей точкой

А2=+1.011 = 0.1011·101 и В2=-0.101 = - 0.101·100

В нормализованном виде в прямом коде эти будут иметь вид:

Порядок Мантисса

[A2]п= 00:1 00:1011

2]п= 00:0 11:101

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

  Сложение в ДК
  + [p1]д=00:1
[p2]д=00:0
    00:1

Определяем, .

2. Проводим выравнивание порядков. Так как порядок первого числа больше порядка второго на единицу, то второе число сдвинем вправо на 1 разряд. Число [В2]исх=(00:0; 11:101) после сдвига будет иметь следующий вид

2]п=(00:1; 11:0101).

3. Складываем мантиссы. При переводе в дополнительный код помним, что вид положительного числа в прямом коде совпадает с его дополнительным кодом, т.е. мантисса числа [A2] будет иметь следующий вид

[A2]п = 00:1011 = [A2]д = 00:1011

Число [В2] – отрицательное, значит в дополнительном коде его мантисса будет иметь вид

2]п = 11:0101 [В2]д = 11:1011

Сложение дополнительных кодов чисел даст следующий результат

+ 00:1011
11:1011
= 00:0110

Мантисса положительная, значит ее вид в дополнительном коде равен прямому коду.

4. Порядок числа S равен порядку числа с большим порядком, т.е. . В прямом коде сумма двух чисел будет иметь следующий вид:

Порядок Мантисса

[S2]п= 00:1 00: 0110

Мантисса не нормализована, т.к. старшая цифра разряда равна 0.

5. Нормализуем результат путем сдвига мантиссы на 1 разряд влево и соответственно вычитаем из значения порядка «1», т.е. [S2]п=(00:0; 00:110). Отсюда S2 = 0,110, а значит S10 = 0,75

Вопрос для проверки. Сложить два числа 0,625 и -0,5, представленных в двоичной системе счисления в форме с плавающей точкой. (Ответ ).

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

Таблица 6 – Двоичная таблица умножения одноразрядных чисел

А В Результат

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

При выполнении умножения следует помнить.

1. Частные произведения, полученные умножением на ноль, игнорируются.

2. При умножении n-разрядных сомножителей разрядность произведения увеличивается

.

3. Знак произведения формируется путем сложения знаковых разрядов сомножителей. Возможные переносы из знакового разряда игнорируются.

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

1. При умножении (делении) порядки складываются (вычитаются) так, как это делается над числами с фиксированной точкой.

2. При умножении (делении) мантиссы перемножаются (делятся) в прямом коде. Важно помнить, что при умножении n-разрядных сомножителей разрядность произведения должна быть равна .

3. Знак произведения (частного) формируется путем сложения знаковых разрядов сомножителей (делителя и делимого) Возможные переносы из знакового разряда игнорируются.

Пример. Умножить два числа А10=3,75 и В10=-5.

Представим числа в виде двоичных чисел с плавающей точкой

А2=+11.11 = 0.1111·102 и В2=-101 = - 0.101·103

В нормализованном виде в прямом коде эти числа будут иметь вид:

Порядок Мантисса

[A2]п= 00:10 00:1111

2]п= 00:11 11:1010

1. Сложим порядки

+ 00:010
00:011
рS = 00:101

2. Умножим мантиссы (для примера умножение на 0 не игнорируем)

2]п=1111 и [В2]п=101.

х 1111 - множимое
1010 - множитель
  S2 = 0000 (сдвиг на 0 разрядов) 1111 (сдвиг на 1 разряд) 0000 (сдвиг на 1 разряд) 1111 (сдвиг на 1 разряд) 0000 (сдвиг на 1 разряд)

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

3. Сложим знаки 00+11=11.

4. Сформируем число т.е. [S2]п=(00:101; 11: 1001011). Отсюда

S2 = - 0.10010110·105 = - 10010.11, а значит S10 = - 18,75.

Операции над десятичными двоично-кодированными числами. Действия над двоично-десятично представленными числами приводятся к операции алгебраического сложения отдельных чисел, представленных дополнительным кодом в соответствии с табл. 5. Напомним, что при двоично-десятичном представлении цифра десятичного числа представляется двоичной тетрадой в соответствии с табл. 1.

Существует несколько алгоритмов сложения десятичных двоично-кодированных чисел. Рассмотрим самый распространенный.

1. Сложение чисел начинается с младших цифр (тетрад) и производится с учетом возникающих переносов из младших разрядов в старшие.

2. Знак суммы формируется специальной логической схемой по знаку большего слагаемого.

3. Для того, чтобы при сложении десятичных двоично-кодированных цифр возникали переносы, аналогичные тем, что возникают при сложении чисел в десятичном представлении, проводят десятичную коррекцию. Для этого к каждой тетраде первого числа прибавляется дополнительно по цифре 610=01102, что позволяет исключить запрещенные комбинации (1010-1111)2.

4. После операции суммирования осуществляется корректировка суммы. Из тех тетрад суммы, из которых не было переносов, изымаются ранее внесенные избытки 610=01102. Для этого проводится вторая коррекция. Операция вычитания заменяется операцией сложения с числом -6, представленным дополнительным кодом -610=10012, но только в тех разрядах, в которых отсутствовали переносы. При второй коррекции переносы из тетрад блокируются.

Операция вычитания реализуется достаточно своеобразно. По общему правилу сложения (пп. 1 - 4) к тетрадам числа с большим модулем прибавляются дополнительные коды тетрад другого числа. При этом первая коррекция не проводится, т.к. в дополнениях тетрад она учитывается автоматически. Знак результата определяется по знаку числа с большим модулем.

Пример. Сложить два числа А10=177 и В10=418, представленных в виде десятичных двоично-кодированныхз чисел.

Представим числа в виде десятичных двоично-кодированных чисел

А2-10=0001 0111 0111 и В2-10=0100 0001 1000

Проведем первую коррекцию числа А (прибавим к нему число 666)

+ 0001 0111 0111
0110 0110 0110
А*= 0111 1101 1101

Сложим два числа А*+ В2-10

+ 0111 1101 1101
0100 0001 1000
С*= 1011 1111 0101

Проводим вторую коррекцию результата . На предыдущем этапе не было переносов из тетрад соответствующих сотням десяткам числа. Именно отсюда изымем ранее внесенные избытки: проведем сложение с числом -6, представленным дополнительным кодом, т.е. с числом , т.е.

+ 1011 1111 0101
1010 1010
С2-10= 0101 1001 0101

Отсюда С10=595.

Вопрос для проверки. Сложить два числа 111 и 367, представленных в двоично-десятичной форме. (Ответ: А2-10=0001 0001 0001 и В2-10=0011 01110 0111. Число А после коррекции 0111 0111 0111. Результат сложения А и В – 1010 1101 1110 (переносов не было). Результат после второй коррекции - 0100 0111 1000 (помнить, что возможные переносы из разрядов при второй коррекции игнорируются)).

 

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

- применять одни и те же устройства для обработки и хранения как числовой информации, представленной в двоичной системе счисления, так и логических переменных;

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

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

Логические элементы компьютера – это часть электронной схемы, реализующая логические операции, имеющие один или несколько входов и выходов, через которые проходят электрические сигналы. Эти сигналы принято обозначать цифрами 0 и 1.

Логическими элементами компьютера являются электронные схемы И, ИЛИ, НЕ, И-НЕ (операция Пирса), ИЛИ-НЕ (операция Шеффера), называемые вентилями, а также триггер. С помощью этих схем можно реализовать любую логическую функцию, описывающую работу устройств компьютера. Обычно у вентилей бывает от двух до восьми входов и один или два выхода. Для представления логических состояний – «1» и «0» – в вентилях, соответствующие им входные и выходные сигналы имеют один из двух установленных уровней напряжения. Например, +5 и 0 вольт. Высокий уровень обычно соответствует значению «истина» («1»), а низкий – значению «ложь» («0»).