Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лк4.Юникод. Кодирование целых чисел.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
244.59 Кб
Скачать

Кодирование целых чисел Прямой код

При записи числа в прямом коде (sign-and-magnitude method) старший разряд (most significant bit) является знаковым разрядом (sign bit). Если его значение равно нулю, то число положительное, если единице — отрицательное. В остальных разрядах (которые называются цифровыми) записывается двоичное представление модуля числа. Например, число −5 в восьмибитовом типе данных, использующем прямой код, будет выглядеть так: 10000101.

Т

Рис. 1. Нумерация двоичных чисел в прямом представлении

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

Достоинства метода:

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

Недостатки:

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

существуют два нуля ("+0" и "−0"), из-за чего усложняется арифметическое сравнение.

Из-за этого прямой код используется очень редко.

Код со сдвигом

П ри использовании кода со сдвигом (excess- , где  ; также говорят biased representation) целочисленный отрезок от нуля до   (  — количество бит) сдвигается влево на  , а затем получившиеся на этом отрезке числа последовательно кодируются в порядке возрастания кодами от 000...0 до 111...1. Например, число −5 в восьмибитовом типе данных, использующем код со сдвигом, превратится в −5 + 128 = 123, то есть будет выглядеть так: 01111011.

По сути, при таком кодировании:

к кодируемому числу прибавляют  ;

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

Можно получить диапазон значений  .

Достоинства метода:

не требуется усложнение архитектуры процессора;

нет проблемы двух нулей.

Недостатки:

п

Рис. 2 Код со сдвигом.

ри арифметических операциях нужно учитывать смещение, то есть проделывать на одно действие больше (например, после «обычного» сложения двух чисел у результата будет двойное смещение, одно из которых необходимо вычесть);

ряд положительных и отрицательных чисел несимметричен.

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

Дополнительный код (дополнение до единицы)

В качестве альтернативы представления целых чисел может использоваться код с дополнением до единицы (англ. Ones' complement).

Алгоритм получения кода числа:

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

е

Рис. 3. Нумерация двоичных чисел в представлении c дополнением до единицы. В отличие от кода со сдвигом, нулю соответствуют коды 00...000 и 11...111

сли число отрицательное, то код получается инвертированием представления модуля числа (получается обратный код)

Пример: переведём число −13 в восьмибитовый код. Прямой код модуля −13 --- 00001101, инвертируем и получаем 11110010. Для получения из дополнительного кода самого числа достаточно инвертировать все разряды кода.

Таким способом можно получить диапазон значений  .

Достоинства метода:

Простое получение кода отрицательных чисел

Недостатки метода:

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

существуют два нуля ("+0" и "−0")