Скачиваний:
23
Добавлен:
11.05.2015
Размер:
998.91 Кб
Скачать

2.2.4. Символьные величины

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

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

Как правило, такие программы используют «Американский стандартный код» ASCII. Однако существует его русифицированный вариант, отличающийся наличием кириллицы вместо ряда редко используемых символов, называемый «расширенный ASCII». Программы, использующие аппаратный знакогенератор проще в написании, однако, вынуждены использовать ограниченный набор символов (не больше 512 различных знаков одновременно) и в ряде случаев вынуждены использовать заранее заданный и неизменный их набор, как например, у видеокарты VGA. Однако для большинства программ этих возможностей хватает. Примеры таких пакетов программ: MS DOS, Norton Commander.

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

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

2.2.5. Целые числа

Величина разрядной сетки определяет возможности машины как с точки зрения точности вычислений, так и с точки зрения удобства программирования и быстродействия. Действительно, для n-разрядной машины максимальное число, записанное без знака, составит 2 n -1. Для n=16 диапазон целых чисел без знака составит [0, 216 -1] или [0, 65535].

Если один разряд (пятнадцатый) оставить под индикацию знака, то диапазон целых чисел со знаком составит [-215 , +215 -1] или [-32768, +32767].

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

Однако в ряде задач не требуется высокой точности измерения данных. В этом случае машина имеет аппаратную возможность работать с байтами, диапазон чисел представленных байтом без знака составит [0, 28-1] или [0, 255]. Знаковый разряд — 15-ый у старшего байта и 7-ой у младшего, диапазон со знаком составит [-128, +127].

Машина может работать с числами в прямом, обратном и дополнительном кодах. Внутреннее представление чисел — двоичная система, причем старший разряд (слова или байта) — знаковый.

Знаковый разряд может принимать значения 0 или 1, причем 0 соответствует знаку «+», а 1 - знаку «-».

Введем понятие обратного и дополнительного кодов. В двоичной системе обратный код n-разрядного числа получают путем поразрядного инвертирования. Для прямого X и обратного Xобр кода в любой позиционной системе счисления справедливо

X+ Xобр =Qn- 1, (2.7)

где Q — основание системы. Из (2.7) следует, что для любого одноразрядного числа X будет справедливо

X + X = Z,

где Z — максимальная базисная цифра.

Так например, для двоичной системы Z = 1, для шестнадцатеричной Z = F. Это правило можно распространить на инвертирование n-разрядного числа любой позиционной системы счисления:

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

Примеры.

X = +10111001(2) +326(8) +1AF3(16)

Xобр = 01000110 451 E50C

11111111(2) 777(8) FFFF(16)

Дополнительный код n-разрядного числа в системе с основанием Q представляет собой дополнение данного числа до Q в степени n:

X + Xдоп = Qn . (2.8)

Примеры.

X = +10111001(2) +326(8) +1AF3(16)

Xдоп = 01000111 452 E50D

1 00000000(2) 1 000(8) 1 0000(16)

Можно сформулировать следующее правило:

для n-разрядного числа сумма прямого и дополнительного кода в каждом из n разрядов дает 0.

Из уравнений (2.7) и (2.8) можно сделать заключение о связи между обратным и дополнительным кодами числа Х:

Xдоп – Xобр = 1.

Для ЭВМ с заданным размером слова (n разрядов) выражение (2.8) принимает вид X + Xдоп = 0, так как разряд 2 n не умещается в разрядную сетку машинного слова.

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

Х= 6(8)= 0 110(2)

+ +

Хдоп = 1 010

0 0 000(2)

Отсюда следует, что взятие дополнительного кода эквивалентно изменению знака исходного числа в машине с ограниченной разрядной сеткой.

Соседние файлы в папке Введение в вычислительную технику.