скачать книгу бесплатно
– необходимо инвертировать все его разряды (т.е. перевести число в обратный код — заменить его содержимое на противоположное),
– а затем прибавить единицу.
Таблица 2.2.
Запись числа в дополнительном коде
Правило вычитания двух двоичных чисел:
– Перевести вычитаемое в дополнительный код.
– Сложить эти два числа (уменьшаемое и вычитаемое в дополнительном коде).
– При сложении бит переноса не учитывать.
– Полученный результат – разность.
Например, найдем разность между числами 13 и 5
Запишем в двоичном коде: 13 (00001101), 5 (00000101).
Переведем в дополнительный код вычитаемое: (5 (11111011).
Бит переноса из старшего разряда отбрасываем. Результат: 1000
=8
.
Деление в двоичной системе происходит так же как в десятичной системе счисления.
Правила деления чисел сводятся к сдвигу разрядов числа и вычитанию. Вычитание сводится к сложению чисел, одно из которых представлено в дополнительном коде.
При выполнении действий двоичной арифметики возможны ситуации, приводящие к неточности результата или ошибке. Так, при использовании целочисленного представления возможна ситуация потери старших разрядов результата (в случае превышения разрядов сетки). Еще одна парадоксальная ошибка «целочисленной арифметики» – при использовании знакового формата при сложении или умножении положительных чисел возможно получение результата, неверного по знаку (с единицей в знаковом бите) и модулю (без учета знакового бита). Для форматов с плавающей точкой возможна другая опасность: выход за границу допустимого диапазона значений. Это может произойти, если порядок результата оказывается больше максимального возможного значения. Обычно в такой ситуации выполнение программы прерывается по ошибке – «арифметическое переполнение». Схожая ситуация, когда результат меньше минимально возможного приведет к исчезновению числа (превращению в нуль, что опасно, например, при делении).
Булевы функции. Сложение по модулю два
Говоря об арифметических операциях с двоичными числами нельзя не сказать о логических операциях с ними. В XIX веке английский математик Джордж Буль разработал основные положения алгебры логики, ныне используемые для формального описания узлов ЭВМ. В алгебре логики (булевой алгебре) различают двоичные переменные и булевы функции.
Двоичные переменные могут принимать два значения: 0 и 1. Они обозначаются символами x
, x
, x
,…
Булевы функции зависят от двоичных переменных. Они, как и аргументы, могут принимать лишь два значения: 0 или 1, и обозначаются как f (x
,x
,x
,…) Булевы функции принято задавать таблицами истинности, где для всех наборов переменных указываются соответствующие им значения функции. Вместо значений 0,1 может использоваться любая другая пара подходящих символов, например false и true (F и T, «ложь» и «истина»). Элементарные булевы функции служат аргументами еще более сложных логических функций.
К элементарным логическим функциям относятся:
Логическое отрицание – инверсия (логическая функция НЕ). Логическим отрицанием переменной x называется такая булева функция f
(x), которая имеет значение 1, когда x = 0 и значение 0, когда x = 1. Булева функция НЕ обозначается в виде f
= x и читается: «f
есть (эквивалентно) не x».
Логическое умножение – конъюнкция (логическая функция И). Конъюнкция двух (или любого другого числа) переменных x
и x
принимает значение 1 только на наборе, в котором все переменные имеют значения 1. На остальных наборах эта функция имеет значение 0.
Логическое сложение – дизъюнкция (логическая функция ИЛИ). Дизъюнкция двух (или любого другого числа) переменных x
и x
имеет значение 0 только на наборе, в котором все переменные имеют значение 0. Если хотя бы одна из переменных равна 1, функция будет иметь значение 1.
Элементарные логические функции НЕ, И, ИЛИ являются основными логическими функциями.
Весьма значимой также является еще одна булева функция: сложение по модулю 2
Сложение по модулю 2 – строгая дизъюнкция (исключающее ИЛИ). Эта функция переменных x
и x
имеет значение 0 на наборе, в котором переменные равны. Иначе говоря, результат равен 0, если оба операнда равны; во всех остальных случаях результат равен 1.
Приведем пример суммирования по модулю 2 двух двоичных чисел:
Вопросы для самопроверки
– Дайте определение системы счисления.
– Что называется основанием позиционной системы счисления?
– Число записано как 677,42 без указания основания системы счисления. В каких системах счисления могло быть записано это число?
– Какое число будет следующим за 10110012?
– Какое число будет предшествовать числу 1008?
– Перевести число 208.12 из десятичной системы счисления в двоичную.
– Перевести число 242 из десятичной системы счисления в шестнадцатеричную.
– Перевести число 1001.0012 из двоичной системы счисления в десятичную.
– Перевести число 10F.6A16 из шестнадцатеричной системы счисления в двоичную.
– Перевести число 10101.012 из двоичной системы счисления в десятичную.
– Представьте в стандартном виде числа: 12, 34; 0,0987; 100,1.
– Почему для хранения чисел в компьютере используют форматы целых и вещественных чисел?
– Запишите в экспоненциальном виде числа: 456, 789; 65,321; 0,753.
– К каким операциям сводят все арифметические действия в двоичной арифметике?
– Какие элементарные логические функции являются базовыми для построения логических выражений?
– Переведите в обратный код число 1000000
.
– Переведите в дополнительный код число 1000001
.
– Выполните операцию двоичного вычитания с использованием дополнительного кода (в двухбайтовом формате) 110101110110
– 10111011
.
– Какие элементарные логические (Булевские) функции Вы можете назвать?
– Выполните операцию двоичного сложения: 1110110 +10101010.
– Выполните операцию двоичного сложения по модулю 2:
11010110 и 1010111.
– Выполните операцию двоичного вычитания с использованием дополнительного кода 11000001 – 1011101.
Глава 3
Представление информации в компьютере
Аналоговые и дискретные сигналы. Дискретное представление информации.
Информационное взаимодействие в природе носит волновой характер, так звук – это акустические (механические) волны, свет – электромагнитные волны, люди видят предметы в отраженном от них свете. Потребность в сохранении и передаче информации привела к возникновению письменности – преобразовании звуковой волны в символьные коды – буквы.
Изобретение фонографа, а потом и магнитофона дало возможность сохранять и воспроизводить звук. Люди научились записывать и воспроизводить видеосигналы.
Появление компьютерной техники и использование универсальной цифровой системы кодирования открыло перед человечеством новые широкие возможности записи, сохранения и воспроизведения информации.
Информация в компьютере может быть представлена с помощью сигналов двух видов.
Аналоговые – сигналы, величина которых сохраняется непрерывно на каком-то отрезке времени, аналогичные порождающим процессам.
Дискретные – сигналы, величина которых сохраняется в виде значений в определенные моменты времени и принимающие фиксированные значения уровня.
Непрерывные сообщения можно преобразовывать в дискретные, применяя дискретизацию и квантование по уровню.
Дискретизация (англ. discretisation) – устранение непрерывности (пространственной или по времени) волновых информационных сигналов.
Квантование (англ. quantization) – преобразование диапазона всех возможных значений входного сигнала в конечное число выходных элементов
Передачу практически любых сообщений можно свести к передаче их отсчетов, следующих друг за другом с интервалом дискретизации t.
Для абсолютно точного представления информации в общем случае необходимо бесконечное число разрядов. На практике же в этом нет необходимости, так как получатели информации (органы чувств человека, механизмы и т.д.) обладают конечной разрешающей способностью, то есть не замечают незначительной разницы между абсолютно точным и приближенным значениями воспроизводимого.
С учетом этого можно подвергнуть дискретные отсчеты квантованию. Интервал между соседними разрешенными уровнями называется шагом квантования. На практике чаще применяется равномерное квантование, при котором шаг квантования постоянный. На рис.3.1 представлена схема дискретизации и квантования звукового сигнала, где ?А – шаг квантования устанавливает сохраняемые уровни значения амплитуды звуковой волны;?t – шаг дискретизации звука (интервал снятия значений амплитуды звуковой волны по времени).
Рис.3.1. Дискретизация и квантование акустического сигнала
На рис.3.2 показана схема пространственной дискретизации. Изображение (слева) разбивается на геометрические элементы с шагом дискретизации ?l, в пределах которого значение цветовой характеристики может считаться неизменным. Результат применения шкалы квантования цвета по уровням градации с шагом ?С показан справа на рисунке.
Рис. 3.2. Схема пространственной дискретизации
Достоинством дискретного представления информации является, в первую очередь, возможность автоматизации передачи и обработки сигналов с помощью компьютеров. Современный персональный компьютер позволяет работать с разнообразными данными: числами, символьными данными (текстом), графическими данными, звуковыми данными, и все данные в компьютере представлены в двоичном цифровом коде.
Формы представления чисел в компьютере и кодирование числовой информации рассматривались в предыдущей главе. Важными источниками информации являются кроме числовых текстовые, звуковые и графические данные.
Для записи слов была изобретена дискретная система кодирования – алфавит, но она не подходит для хранения и автоматической обработки в вычислительной технике. Двоичное кодирование символьных данных производится с помощью кодовых таблиц, в которых каждому символу соответствует двоичный код.
Для представления изображений используют два способа – растровый и векторный. Оба они используют двоичный код для хранения цветовых и пространственных характеристик.
Для представления звука в виде цифрового кода сигнал дискретизируют по времени и квантуют по уровню с помощью аналого-цифрового преобразователя.
Компьютерное представление текстовой информации
Текстовые данные являются важнейшим источником информации. Для записи слов человечеством были изобретены буквы, для указания оттенков речи – знаки препинания. Все это – символы, символьный способ хранения изначально дискретен, и способ компьютерного представления сводится к кодированию символов численным способом.
Все используемые способы представления символов в памяти компьютера, так или иначе, сводятся к нумерации символов алфавита и хранения полученных кодов как целых чисел. Этому коду драйвер видеокарты ставит в соответствие начертание символа (тем или иным шрифтом).
Такое кодирование производится размещением кодовых таблиц в оперативной памяти компьютера, по которым каждому символу ставится в соответствие двоичный код.
При кодировании языков, использующих алфавитную (не иероглифическую) письменность, достаточно 127 символов (в английском языке 26 букв +26 прописных «заглавных» +10 цифр + знаки препинания и арифметические знаки). Следовательно, для кодировки достаточно по 7 бит на каждый символ, этот принцип использует самая распространенная система кодирования латиницы – ASCII (American Standard Code for Information Interchange – американский стандартный код для обмена информацией). Код ASCII был разработан в 60-х годах XX века для любых видов передачи информации (телеграфа, телетайпа) и поэтому в нём, кроме информационных символов, используются символы-команды для управления связью. Эти символы: Начало текста, Конец текста, Звуковой сигнал, Горизонтальная табуляция и т. д. ныне вышли из употребления. Их коды являются служебными и трактуются большинством форматов как управляющие команды. Они занимают первые 31 позиции в таблице.
Таблица 3.1.
Таблица символов ASCII (128 – 255)