Подання цілих чисел
ПОДАННЯ ЦІЛИХ ЧИСЕЛ
М ножество цілих чисел, представлених в пам'яті ЕОМ, обмежена. Діапазон значень залежить від розміру осередків пам'яті, використовуваних для їх зберігання.
Для цілих чисел існують два подання:
-беззнаковое;
-зі знаком.
В К-розрядної осередку може зберігатися 2 до різних значень цілих чисел.
Д іапазон значень цілих беззнакових чисел (тільки позитивні):
від 0 до 2 до - 1
для 16-розрядної комірки від 0 до 65535
для 8-розрядної комірки від 0 до 255
Д іапазон значень цілих чисел зі знаком (і негативні, і позитивні в рівній кількості):
від -2 до-1 до 2 к-1 -1
для 16-розрядної комірки від -32768 до 32767
для 8-розрядної комірки від -128 до 127
Ч об отримати внутрішнє уявлення цілого позитивного числа N. зберігається в К-розрядної осередку, необхідно:
1. перевести число N в двійкову систему числення;
2. отриманий результат доповнити зліва незначущими нулями до До розрядів.
Отримати внутрішнє уявлення цілого числа 1607 в 2-х байтовой осередку.
Рішення:
N = 1607 = 110 010 001 112.
Внутрішнє представлення цього числа буде 0000 0110 0100 0111. Шістнадцяткова форма внутрішнього подання числа: 0647.
Д ля уявлення цілого негативного числа використовується додатковий код.
Додаткова кодом двійкового числа X в N-розрядної осередку є число, яке доповнює його до значення 2 N.
П олучение додаткового коду:
1. отримати внутрішнє уявлення позитивного числа N (прямий код);
2. отримати зворотний код цього числа заміною 0 на 1 або 1 на 0 (зворотний код);
3. до отриманого числа додати 1.
П оложітельное число в прямому, зворотному і додатковому кодах не змінюють своє зображення.
І спользование додаткового коду дозволяє замінити операцію віднімання на операцію складання. A-B = A + (- B). П роцессор достатньо вміти лише складати числа.
Старший, К-й розряд у внутрішньому поданні будь-якого позитивного числа дорівнює 0, негативного числа дорівнює 1. Тому цей розряд називається знаковим розрядом
ПРИКЛАД
Отримати внутрішнє уявлення цілого негативного числа - 1607.
1. Внутрішнє пердставленіе позитивного числа:
000 0110 0100 0111;