Целые числа в компьютере
Вся информация, обрабатываемая современными компьютерами, хранится в них в
двоичном виде. Каждый элемент ячейки служит для
изображения одного разряда двоичного числа. Именно поэтому каждый элемент ячейки
называют разрядом.
Способы представления:
При знаковом представлении чисел 0 в самом левом разряде ячейки соответствует знаку плюс, а единица – знаку минус. Такое представление чисел называется прямым кодом.
Однако для представления отрицательных чисел в компьютере используется дополнительный код.
Если мы хотим прибавить к какому-либо числу единицу, то сдвигаемся по этой оси вправо.
Если мы хотим отнять от какого-либо числа единицу, то сдвигаемся влево.
В k-разрядной компьютерной арифметике все целые числа расположены по кольцу, причем рядом с максимальным расположено минимальное в конкретном представлении.
В связи с тем, что количество чисел, которые могут быть представлены в k разрядах, ограничено, при выполнении арифметических действий в целочисленной k-разрядной арифметике могут возникнуть следующие ситуации:
Способы представления:
- Беззнаковое используют только для неотрицательных целых чисел
- Знаковое используют для отрицательных и положительных чисел
Беззнаковое представление целых положительных чисел в компьютере
Чтобы получить представление целого положительного числа в компьютере, это число необходимо перевести в двоичную систему счисления. Если двоичное число состоит не более чем из k цифр, то это число можно записать в k-разрядной ячейке памяти, дополнив нулями слева до k разрядов.Знаковое представление целых чисел в компьютере
При знаковом представлении чисел 0 в самом левом разряде ячейки соответствует знаку плюс, а единица – знаку минус. Такое представление чисел называется прямым кодом.
Однако для представления отрицательных чисел в компьютере используется дополнительный код.
- количество представимых чисел в k разрядах ограничено и зависит от k;
- диапазон знаковых чисел, представимых в k-разрядной ячейке, не симметричен относительно 0.
Алгоритм построения дополнительного кода
Для k-разрядной ячейки дополнительный код отрицательного числа можно получить следующим образом:- Модуль числа представляется прямым кодом в k разрядах.
- В прямом коде все нули заменяются на единицы, а единицы – на нули. Таким образом получаем обратный код.
- К полученному обратному коду прибавляется единица.
Иногда требуется по имеющемуся дополнительному коду числа восстановить
исходное число. Модуль искомого числа в таком случае можно получить двумя
способами:
- Провести обратную цепочку преобразований: вычесть единицу из дополнительного кода числа, инвертировать полученный результат и перевести его в десятичную систему счисления.
- Построить дополнительный код для имеющегося дополнительного кода и перевести результат в десятичную систему счисления.
Перечисление целых знаковых чисел
Расположим целые знаковые числа, которые можно записать в 8-разрядах, в порядке возрастания на числовой оси:Если мы хотим прибавить к какому-либо числу единицу, то сдвигаемся по этой оси вправо.
Если мы хотим отнять от какого-либо числа единицу, то сдвигаемся влево.
В k-разрядной компьютерной арифметике все целые числа расположены по кольцу, причем рядом с максимальным расположено минимальное в конкретном представлении.
В связи с тем, что количество чисел, которые могут быть представлены в k разрядах, ограничено, при выполнении арифметических действий в целочисленной k-разрядной арифметике могут возникнуть следующие ситуации:
- Старшие цифры результата могут выйти за пределы отведенных разрядов и будут утеряны.
- При сложении или умножении двух положительных знаковых чисел можно получить отрицательное число.
Комментариев нет:
Отправить комментарий