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

16. Знаковые представления и представления в дополнительном коде.

Дополнительный код (англ. two’s complement, иногда twos-complement) — наиболее распространенный способ представления отрицательных целых чисел в компьютерах. Он позволяет заменить операцию вычитания на операцию сложения, чем упрощает архитектуру ЭВМ. Дополнительный код отрицательного числа получается инвертированием двоичного числа и прибавлением к нему единицы.

Представление числа в дополнительном коде

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

Двоичное 8-ми разрядное число со знаком может представлять любое целое в диапазоне от −128 до +127. Если старший разряд равен нулю, то наибольшее целое число, которое может быть записано в оставшихся 7 разрядах равно 27 − 1, что равно 127.

Преобразование дополнительного кода

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

Если число, записанное в прямом коде, положительное, то к нему дописывается старший (знаковый) разряд, равный 0, и на этом преобразование заканчивается;

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

17. Представление нечисловых данных.

Хотя самые первые компьютеры работали в основном с числами, современные машины часто используются для выполнения нечисловых приложений, например, для обработки текстов или управления базами данных. Для этих приложений нужны другие, нечисловые, типы данных. Они часто поддерживаются командами уровня архитектуры набора команд. Здесь очень важны символы, хотя не каждый компьютер обеспечивает аппаратную поддержку для них. Наиболее распространенными символьными кодами являются ASCII и UNICODE. Они поддерживают 7-разрядные и 16-разрядные символы соответственно. Эти коды обсуждались в главе 2.

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

К нечисловым относится также очень важный логический тип данных, содержащий булевы значения. Этих значений два: истина и ложь. Теоретически булево значение можно представлять единственным битом: 0 — ложь, 1 — истина (или наоборот). На практике же используется байт или слово, поскольку отдельные биты в байте не имеют собственных адресов и, следовательно, к ним трудно обращаться. В обычных системах применяется следующее соглашение: 0 означает ложь, а любое другое значение — истину.

Единственная ситуация, в которой булево значение представлено одним битом — это массив битов, поэтому 32-разрядное слово может содержать 32 булевых значения. Такая структура данных называется битовым отображением, или

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

Последний тип данных — это указатели, которые представляют собой машинные адреса. Мы уже неоднократно рассматривали указатели. В машинах Mic-x регистры SP, PC, LV и СРР — это примеры указателей. Доступ к переменной на фиксированном расстоянии от указателя (а именно так работает команда IL0AD) широко поддерживается всеми машинами.

ДАННЫЕ НЕЧИСЛОВЫЕ - совокупность математических конструктов и соотношений между ними, отражающая интересующую исследователя эмпирическую систему с отношениями, но не являющаяся совокупностью действительных чисел. Данные нечисловые широко распространены в социологических исследованиях.