Изменения

Перейти к: навигация, поиск
Нет описания правки
Выбор способа хранения целых чисел в памяти компьютера — не такая тривиальная задача, как могло бы показаться на первый взгляд. Мы хотим, чтобы этот способ:
 
*не требовал усложнения архитектуры процессора для выполнения арифметических операций с отрицательными числами;
*позволял хранить больший, чем у других способов, диапазон чисел в том же количестве памяти;
*не усложнял арифметические действия;
*хранил бы одинаковое количество положительных и отрицательных чисел.
 
Рассмотрим разные методы представления.
 
== Прямой код ==
При записи числа в '''прямом коде''' (''sign-and-magnitude method'') старший разряд (''most significant bit'') является знаковым разрядом (''sign bit''). Если его значение равно нулю, то число положительное, если единице — отрицательное. В остальных разрядах (которые называются цифровыми) записывается двоичное представление модуля числа. Например, число −5 в восьмибитном типе данных, использующем прямой код, будет выглядеть так: 10000101.
Достоинства метода:
 
*получить прямой код числа достаточно просто.
*ряд положительных и отрицательных чисел несимметричен.
Из-за необходимости усложнять арифметические операции код со сдвигом для представления целых чисел используется не часто, но зато применяется для хранения порядка [[Представление вещественных чисел|вещественного числа]].
== Дополнительный код ==
Недостатки:
*ряд положительных и отрицательных чисел несимметричен. ==Беззнаковые типы данных==В современных компьютерах беззнаковые типы данных хранятся в прямом коде, а знаковые — в дополнительном. Это позволяет одинаково реализовывать арифметические операции для нихно это не так важно: с помощью дополнительного кода выполнены гораздо более важные вещи, которые мы хотим от способа представления целых чисел. Однако из-за того, что в беззнаковом <tex> n </tex>-битном типе данных можно представить диапазон <tex> [0; 2^n - 1] </tex>, а в <tex> n </tex>-битном знаковом — <tex> [-2^{n-1}; 2^{n-1} - 1] </tex>, может произойти переполнение.
==Список литературы==
418
правок

Навигация