ПРЕДСТАВЛЕНИЕ  ИНФОРМАЦИИ 

В  КОМПЬЮТЕРЕ  

Представление целых чисел

 

Для представления чисел в памяти компьютера исполь­зуются два формата: формат с фиксированной точкой и формат с плавающей точкой. В формате с фиксиро­ванной точкой представляются только целые числа, в формате с плавающей точкой - вещественные числа (целые и дробные).
Целые числа
Целые числа являются простейшими числовыми дан­ными, с которыми оперируют ЭВМ. Для целых чисел су­ществуют два представления: беззнаковое (только для не­отрицательных целых чисел) и со знаком. Очевидно, что отрицательные числа можно представлять только в знако­вом виде. Целые числа в компьютере хранятся в формате с фиксированной запятой.
Множество целых чисел, представимых в памяти ЭВМ, ог­раничено. Диапазон значений зависит от размера ячеек памяти, используемых для их хранения. Максимальное значение целого неотрицательного числа достигается в случае, когда во всех ячейках хранятся единицы. Для k-разрядного представления оно будет равно: 2k - 1
1 байт: 111111112 = 25510
2 байта: 11111111111111112 = 6553510
В k-разрядной ячейке может храниться 2k различных значений целых чисел.
Для беззнакового представления все разряды ячейки от­водятся под представление самого числа. Для представления со знаком самый старший (левый) разряд отводится под знак числа, остальные разряды - под само число. Если число положительное, то в знаковый разряд помещается 0, если число отрицательное - 1.
Пример 1. Пусть для представления целых чисел в компьютере используется 16-разрядная ячейка (2 байта). Определить, каков диапазон хранимых чисел, если:
а) хранятся неотрицательные числа;
б) хранятся как положительные так и отрицательные числа.
Решение. Всего в 16-разрядной ячейке может храниться одно из 216=65536 различных значений. Следовательно двухбайтовая ячейка может хранить число:
а) от 0 до 65535 (от 0 до 2k-1) для неотрицательных чисел
б) от -32768 до 32767 (от -2k-1 до 2k-1-1) для чисел со знаком (k-1, т.к. один разряд отводится под знак числа). 
Чтобы получить внутреннее представление целого по­ложительного числа N, хранящегося в k-разрядном ма­шинном слове, необходимо:
1) перевести число N в двоичную систему счисления;
2) полученный результат дополнить слева незначащими нулями до k разрядов.
Пример 2. Получить внутреннее представление целого числа 1607 в 2-х байтовой ячейке.
Решение. N = 160710 = 110010001112. Внутреннее представление этого числа в ячейке будет следующим: 0000 0110 0100 0111. Шестнадцатеричная форма внутреннего представления числа получается заменой 4-х двоичных цифр одной шестнадцатеричной цифрой: 0647.
Прямой код числа
Представление числа в привычной форме «знак»-«ве­личина», при которой старший разряд ячейки отво­дится под знак, а остальные разряды ячейки - под запись числа в двоичной системе, называется прямым кодом двоичного числа.
Например, прямой код двоичных чисел 10012 и -10012 для 8-разрядной ячейки равен 00001001 и 10001001 соответ­ственно.
Положительные числа в ЭВМ всегда представляются с помощью прямого кода.  Прямой код отри­цательного числа отличается от прямого кода соответствующего положительного числа содержимым знакового разряда. Но отрицательные целые числа представляются в ЭВМ с помощью так называемого дополнительного кода.
Дополнительный код отрицательного числа m равен 2k - |m|, где k - количество разрядов в ячейке. В компьютерной k-разрядной арифметике 2k=0, так как двоичная запись этого числа состоит из одной единицы и k нулей, а в ячейку из k разрядов может умес­титься только k цифр, в данном случае только нули. Таким образом, дополнительный код отрицательного числа - это дополнение |m| до 2k.
Для записи внутреннего представления целого отрица­тельного числа (-N) необходимо:
1. получить внутреннее представление положитель­ного числа N;
2. получить обратный код этого числа заменой 0 на 1 и 1 на 0;
3. к полученному числу прибавить 1.
Данная форма представления целого отрицательного числа называется дополнительным кодом. Использование дополни­тельного кода позволяет заменить операцию вычитания на операцию сложения уменьшаемого числа с дополнительным кодом вычитаемого.
Пример 3. Получить внутреннее представление целого отрицательного числа -1607.
Решение.
1) Двоичное представление числа: 0000 0110 0100 0111
2) обратный код: 1111 1001 1011 1000
3) прибавить 1: 1111 1001 1011 1001
Шестнадцатеричная форма: F9B9.
Дополнительный код используется для упрощения вы­полнения арифметических операций. Если бы вычислитель­ная машина работала с прямыми кодами положительных и отрицательных чисел, то при выполнении арифметичес­ких операций следовало бы выполнять ряд дополнительных действий. Например, при сложении нужно было бы прове­рять знаки обоих операндов и определять знак результата. Если знаки одинаковые, то вычисляется сумма операндов и ей присваивается тот же знак. Если знаки разные, то из из большего по абсолютной величине числа вычитается мень­шее и результату присваивается знак большего числа. То есть при таком представлении чисел (в виде только прямого кода) операция сложения реализуется через достаточно сложный алгоритм. Если же отрицательные числа представ­лять в виде дополнительного кода, то операция сложения, в том числе и чисел разного знака, сводится к их пораз­рядному сложению.
Для компьютерного представления целых чисел обычно используется один, два или четыре байта, т.е. ячейка па­мяти будет состоять из восьми, шестнадцати или 32 разря­дов соответственно.
Дата последнего обновления страницы 10.06.2018
Сайт создан по технологии «Конструктор сайтов e-Publish»