
- •Архітектура та програмне забезпечення комп’ютера Програмування як наукова дисципліна і професійна діяльність
- •Архітектурні особливості сучасних комп'ютерів Класична структура комп’ютера
- •Поняття архітектури комп’ютера
- •Технологія виконання команд мікропроцесором
- •Арифметичні основи комп’ютера
- •Загальні відомості про системи числення
- •Системи числення, застосовувані в комп’ютерах
- •Переведення чисел із однієї позиційної системи числення в іншу
- •Подання даних в комп’ютері Структура внутрішньої пам’яті комп’ютера
- •Подання числових даних
- •Кодування чисел
- •Двійкова арифметика в комп'ютерах
- •Кодування текстових даних
- •Кодування графічних даних
- •Кодування звукової інформації
- •Види програмного забезпечення комп'ютерів Класифікація програмного забезпечення
- •Загальна характеристика операційних систем
Кодування чисел
Для спрощення арифметичних операцій,числа в цифрових пристрояхЕОМ подаються спеціальними кодами -прямим,оберненимідодатковим.
Всі три способи використовують самий лівий (старший) розряд бітового набору довжини n для кодування знака числа: знак "плюс" кодується нулем, а "мінус" - одиницею. Інші n-1 розрядів (цифрова частина) використовуються для представлення абсолютної величини числа.
Додатні числа у прямому, оберненому та додатковому кодах записуються однаково - двійковим кодом числа з цифрою 0 у знаковому розряді. Наприклад, при розмірі розрядної сітки n = 8:
Від’ємні числа в прямому, зворотному і додатковому кодах мають різне представлення.
Прямий код від’ємного числа відрізняється від прямого коду додатного числа тим, що значення його знакового розряду дорівнює не 0, а 1. Наприклад, прямий код чисел -1 і -127 у 8-розрядній сітці:
У прямому коді в розрядну сітку комп'ютера можна записати наступне максимальне за абсолютним значенням число:
Хп max = 0111…1= 2n-1 -1,
де n - кількість розрядів розрядної сітки комп'ютера.
Діапазон зміни машинного представлення цілих чисел для прямого коду лежить в межах
–(2n-1 -1) < [Хп] < (2n-1 -1).
Обернений код від’ємного числа отримується із прямого коду шляхом замінийогоцифр наїхдоповнення до1. Код знаказберігаєтьсябез змін. Заміна цифр їх доповненням для двійкової системи співпадає з операцією інверсії, тобто у всіх розрядах нулі потрібно замінити на 1, а одиниці - на 0. Наприклад, обернений код чисел -1 і -127 у 8-розрядній сітці:
Діапазон зміни машинного представлення цілих чисел для оберненого коду: -(2n-1–1) .. 0.
Додатковий код від’ємного числа отримується із оберненого коду збільшенням на 1 його молодшого розряду. Прицьомупереносіз знакового розрядуігнорується. Наприклад, додатковий код чисел -1 і -127 у 8-розрядній сітці:
Діапазон зміни машинного представлення цілих чисел для додаткового коду: -2n-1 ..-1.
Додатковий код є математичним доповненням основи q:
|X|+ [Хд] = qn+1 ,
де |Х|- абсолютне значення числа, n - кількість розрядів у представленні числа.
Відповідно додатковий
код від’ємного числа Х,
що зберігається в n
бітах, можна
визначити як 2n
-|X|. По суті,
додатковий код
являє собою доповнення
|Х| до
0: так як в n-розрядній
двійковій арифметиці
(двійкова запис
цього числа
складається з
1 і n
нулів, а
в n-розрядну
комірку
поміщаються тільки
n
молодших
розрядів,
тобто n
нулів), то
вірною є рівність
2n
–|X|+|X|=
0. Наприклад,
при k =
8
доп (+1) = 1 = 000000012 ;
доп (–127) = 28 - |-127|= 256 –127 = 12910 = 100000012 ;
доп (–1) = 28 - |-1|= 256 –1 = 25510 = 111111112.
Можна перевіритиправильність, склавшидодатковийкодзсамим числом: результатповинен бутирівним 2n.
Таким чином, усистемі двійкових чисел зі знаком замінадодатньогочисла на рівне йому по модулювід’ємне і навпаки,від’ємного - надодатнє, здійснюється застосуванням до коду даного числа операції доповнення3. Ця властивість представлення від’ємних чисел у додаткових кодах дозволяє при виконанні арифметичних операцій взагалі відмовитися від операції віднімання, замінивши її операцією додавання з числом, що має знак, протилежний знаку від'ємника.
Саме так і виконуються арифметичні операції над числами електронними пристроями комп'ютера. Якби ПК обробляв прямі коди додатних і від’ємних чисел, то при виконанні арифметичних операцій слід було б виконувати ряд додаткових дій. Наприклад, при додаванні потрібно було б перевіряти знаки обох операндів і визначати знак результату: якщо знаки однакові, то обчислюється сума операндів і їй присвоюється той же знак; якщо ж знаки різні, то з більшого по абсолютній величині числа віднімається менше і результату присвоюється знак більшого числа. Тобто, при представленні чисел лише у прямому коді, операція додавання реалізується через досить складний алгоритм. Куди простіше складати числа, якщо від’ємні числа перетворені в додатковий код.
Тому додатні числа в ПК представляються за допомогою прямого коду; для представлення ж від’ємних чисел використовується додатковий код.
Зазвичай десяткові числа при введенні в машину автоматично перетворюються в двійковий код (цілі без знака), обернений або додатковий код (цілі зі знаком) і в такому вигляді зберігаються, переміщуються і беруть участь в операціях. При виведенні результатів з ЕОМ відбувається зворотне перетворення в десяткові числа.