Подання даних в обчислювальних системах

 

Вхідний контроль:

1 Яке мінімальне та максимальне число без знака можна зберігати у

8-розрядному регістрі?

2 Яке мінімальне та максимальне число зі знаком можна зберігати у

8-розрядному регістрі?

3 Запишіть основу двійкової, десяткової та шістнадцяткової систем числення символами своєї ж системи?

4 У мережі Інтернет використовується єдиний для всіх країн світу універсальний 16-розрядний код (Unicod). Скільки символів можна відобразити за допомогою цього коду?

 

В обчислювальних системах виконуються необхідні дії по збиранню, зберіганню, обробленню і передаванню дискретної інформації, яка подана у вигляді потоку цифрових даних. Дані цифрового потоку можуть бути числами зі знаком або без нього, логічними змінними (масивами), адресами (номерами) будь-яких об’єктів і символами алфавітів, що використовуються. Усі ці види даних безпосередньо в обчислювальних системах представлені однаково – у вигляді двійкового коду, однак виконання арифметичних і логічних операцій виконується різними вузлами арифметико-логічного пристрою з використанням різних принципів. Так виконання арифметичних операцій виконується у позиційній двійковій системі числення, а виконання логічних операцій – за законами булевої алгебри.

Крім двійкової системи числення в обчислювальних системах також використовуються вісімкова і шістнадцяткова позиційні системи числення, двійково-десяткова система з кодованим поданням чисел.

Двійково-десяткова система числення з кодованим поданням чисел(BCD-система) це система числення, в якій цифри десяткової системи числення кодуються за допомогою символів двійкової. Це система числення зі звичайною вагою двійкових розрядів – (8–4–2–1), в якій кожна десяткова цифра кодується двійковою тетрадою за допомогою двох символів двійкової системи. Слід зауважити, що двійково-десяткова система має певну надлишковість, тому що для кодування десяткових цифр використовується лише 10 комбінацій із 16 можливих у кожній тетраді. Це відрізняє її від інших позиційних систем числення, в яких надлишковості немає.

Використання цієї системи дозволяє зменшити програмні та апаратні витрати при перетворенні двійкових чисел на десяткові для виведення результатів на пристрої відображення і при введені інформації.

У комп’ютерах використовують упакований та розпакований формати подання двійково-десяткових даних.

Упакований формат передбачає подання двох цифр десяткової системи числення у двох тетрадах одного байта. Наприклад,

 
 

 

 

 

 


Таким чином, діапазон подання десяткових чисел у такій системі сягає від 00 до 99 і такі числа можливо використовувати при виконанні операцій додавання і віднімання з корекцією.

Розпакований формат передбачає подання десяткових чисел у вигляді двохрозрядних десяткових цифр від 00 до 09 і використовується при виконанні операцій додавання, віднімання, множення і ділення з корекцією. У такому форматі при кодуванні вхідних даних у старшій тетраді двійково-десяткового числа повинно бути 0000.

Крім двійково-десяткової системи числення зі звичайною вагою двійкових розрядів в обчислювальній техніці використовується двійково-десяткова система числення з надмірністю 3 (8–4–2–1 + 3)

Шістнадцяткова системи числення(Н-система) – система числення, яка дозволяє легко переходити від неї до двійкової і навпаки. Використовується для подання адреси пристроїв при написанні програм і для виводу результатів на екран. Так лістинг програми виводиться на екран у шістнадцятковій системі числення. Крім того, використання шістнадцяткової системи числення дозволяє зменшити обсяг тексту програми при її написанні мовою Асемблера.

Для подання алфавітно-цифрової інформації, що включає цифри, літери різних абеток, розділові знаки, математичні та інші символи, використовуються різні коди для оброблення такої інформації. Так у персональних комп’ютерах використовується код системи ASCII.

Система ASCII (American Standard Code for Information Interchange – Американській „стандартний код для обміну інформацією”) є угодою за стандартом кодування символів, що схвалена Асоціацією стандартів США. Наявність такого коду спрощує обмін інформацією між різними пристроями комп’ютера. Фірма IBM запропонувала для використання у персональних комп’ютерах розширену версію системи ASCII, яка відрізняється від стандартної тим, що всі вісім біт символу використовуються для кодування інформації (у стандартній системі один біт призначався для перевірки правильності передавання інших семи бітів – перевірка на парність). Це дало змогу збільшити кількість символів на 128 і включити до їх складу символи національних алфавітів.


Стандартні коди ASCII можна розподілити на три групи:

– коди керування передаванням даних;

– коди керування форматом;

– коди друкованих символів.

Коди керування передаванням даних подають інформацію, що призначена для управління процесами обміну даними. Наприклад, код SOH (start of header – початок заголовка), код STX (start of text – початок тексту) і ЕТХ (end of text – кінець тексту). Ці символи використовуються в комунікаційних протоколах для розмежування різних блоків даних, що передаються. Фірма IBM також модифікувала стандартне використання цих кодів, надавши їх друкованим графічним символам.

Коди керування форматом зображення використовуються для керування принтером або екраном монітору. Прикладами служать коди звукового сигналу, переходу на новий рядок, повернення каретки і прогону на початок сторінки. Коди керування передаванням даних і керування форматом зображення наведено у табл. 2.1. Друкарські символи стандартного набору наведено у табл. 2.2, а друкарські символи розширеного набору – у табл. 2.3.

 

Таблиця 2.1 – Коди керування передаванням даних і керування форматом зображення

Мнемо-ніка Зображення при друкуванні Призначення у системі ASCII Код у системі числення
десятко- ва шістнад- цяткова
NUL   Нульовий байт
SOH   Початок заголовку
STX   Початок тексту
ЕТХ   Кінець тексту
EOT   Кінець передачі
ENQ   Запит
АСК   Підтвердження
BEL Сигнал  
BS Повернення на один символ  
НТ Табуляція  
LF Перехід на новий рядок   А
VT Переміщення курсора в лівий верхній кут   В
FF Прогін сторінки   C
CR Повернення каретки   D

 


 

Закінчення табл. 2.1

Мнемо-ніка Зображення при друкуванні Призначення у системі ASCII Код у системі числення
десятко ва шістнад цяткова
SO   Нижній регістр Е
SI   Верхній регістр F
DLE   Кінець сеансу зв’язку
DC1   Керування пристроєм 1
DC2   Керування пристроєм 2
DC3   Керування пристроєм 3
DC4   Керування пристроєм 4
NAK   Збій передавання даних
SYN   Синхронізація
ETB   Кінець блока передавання
CAN   Відміна
       
       
EM   Кінець носія даних
SUB   Підстановка 1A
ESC   Початок керування 1B
FS Курсор праворуч Розподілювач файлів 1С
GS Курсор ліворуч Розподілювач груп 1D
RS Курсор вгору Розподілювач записів 1E
US Курсор вниз Розподілювач полів 1F

Таблиця 2.2 – Друкарські символи стандартного набору

Символ Код у системі числення Символ Код у системі числення Символ Код у системі числення
D H D H D H
Пропуск @ `
! A а
B b
# C с
$ D d
% E е
& F f
G i
( Н h
) I i
* 2А J 4A j 6A
+ 2В К 4B k 6B
, 2С L 4C l 6C
2D М 4D m 6D
  2Е N 4E n 6E
/ 2F 0 4F o 6F
Р p
Q q
R r
S s
Т t
U u
V v
W w
X x
Y y
: 3A Z 5A z 7A
; 3B [ 5B { 7B
< 3C \ 5C | 7C
= 3D ] 5D } 7D
> 3E ^ 5E ~ 7E
? 3F _ 5F   7F

Таблиця 2.3 – Друкарські символи розширеного набору

Символ Код у системі числення Символ Код у системі числення Символ Код у системі числення
D H D H D H
А а A0 C0
Б б A1 C1
В в A2 C2
Г г A3 C3
Д д A4 C4
Е е A5 C5
Ж ж A6 C6
З з A7 C7
И и A8 C8
Й й A9 C9
К 8A к AA CA
Л 8B л AB CB
М 8C м AC CC
Н 8D н AD CD
О 8E о AE CT
П 8F п AF CF
Р B0 D0
С B1 D1
Т B2 D2
У B3 D3
Ф B4 D4
Х B5 D5
Ц B6 D6
Ч B7 D7
Ш B8 D8
Щ B9 D9
Ъ 9A BA DA
Ы 9B BB DB
Ь 9C BC DC
Э 9D BD DD
Ю 9E BE DE
Я 9F BF DF

 

Закінчення табл. 2.3
Символ Код у системі числення Символ Код у системі числення Символ   Код у системі числення
D H D H D H
р E0 ы EB F6
с E1 ь EC F7
т E2 э ED F8
у E3 ю EE F9
ф E4 я EF ÷ FA
х E5 Ё F0 ± FB
ц E6 ё F1 FC
ч E7 F2 ¤ FD
ш E8 ` F3 * FE
щ E9 F4 пропуск FF
ъ EA F5      

 

Двійкові числа у комірках пам’яті та регістрах мікропроцесора розміщуються таким чином, що для кожного біта (двійкового розряду) призначено окремий елемент пам’яті. Сукупність елементів, які утворюють комірку пам’яті, визначають довжину двійкового числа, називаються розрядною сіткою. Довжина розрядної сітки завжди обмежена і визначається конструктивними особливостями МПС. Тому значення чисел, що оброблюються, завжди обмежені. Ще більше обмежень стає при поданні дробових чисел.

Для подання дробових чисел в обчислювальній техніці використовуються дві форми:

– форма з фіксованою точкою;

– форма з плаваючою точкою.

При використанні форми з фіксованою точкою розрядна сітка конструктивно розподіляється на три частини: для подання знака, цілої і дробової частини числа. Використання такої форми пов’язано з труднощами при підготовці даних для оброблення, для забезпечення необхідного діапазону поданих даних. Також при обробленні даних трудно забезпечити необхідну точність оброблення (розрахунків).

Значно ефективніше використання форми з плаваючою точкою. Таке подання даних дозволяє розширити діапазон чисел і забезпечити необхідну точність подання результатів.

У цій формі дробове число подається у вигляді мантиси M і порядку E (Exponent)

 

D = ± M∙B±E,

 

де B – основа системи числення, у нашому випадку B = 2 –двійкова система числення.

Для однакового подання різних чисел мантису завжди нормалізують у межах

0,1 ≤ M < 1,

 

що виключає наявність нульового розряду системи числення після коми. Якщо у результаті обчислення результат перестає бути нормалізованим, то перед збереженням у пам’яті його необхідно нормалізувати, виконавши необхідний зсув мантиси і змінити значення порядку.

У формі з плаваючою точкою кількість розрядів порядку визначає діапазон оброблюваних чисел, а кількість розрядів мантиси – точність їх подання.

 

Контрольні питання:

1 Для чого використовуються коди ASCII?

2 Які форми використовуються для подання дробових чисел?

3 Чим визначається точність подання чисел при використанні форми з плаваючою точкою?

 

Контрольні питання підвищеної складності:

1 Подати двійкове число 111010101В у шістнадцятковій системі числення.

2 Подати десяткові числа 06D, 45D, 60D у двійково-десятковій системі числення в упакованому та розпакованому форматах.

3 Подайте число 12,25D у вигляді з плаваючою точкою.

 

Подання даних у кодах

 

Вхідний контроль:

1 В чому полягає різниця між послідовними і паралельними кодами подання інформації?

2 Як записується дробове число у формі з фіксованою точкою?

3 Як записується дробове число у формі з плаваючою точкою?

 

З одного боку, в обчислювальній техніці існують два види кодів подання інформації – послідовний і паралельний, які обумовлюють порядок надходження даних для оброблення. Це пов’язано з конструктивними особливостями ліній передавання інформації, які бувають двопроводовими (телефонна лінія, радіорелейна лінія тощо) і багатопроводовими шинами. У двопроводовій лінії інформація передається побітно (у кожний момент часу на лінії є лише один біт) і код, що використовується, називається послідовним. Оброблення послідовного коду відбувається за декілька тактів (визначається розрядною сіткою), в міру надходження окремих бітів. Навпаки, у багатопроводовій шині у кожний момент часу інформація подана кількома розрядами числа, які можуть оброблятися одночасно, за один такт. Такий код називається паралельним.

З іншого боку, числа в обчислювальній техніці можуть подаватися у вигляді різних кодів у залежності від вимог до подання числа і необхідного його оброблення.

Отже, цілі беззнакові двійкові числа можуть бути подані натуральним кодом числа.

Натуральний код числапередбачає подання даних як цілих беззнакових двійкових чисел. Діапазон подання чисел у натуральному коді визначається довжиною розрядної сітки. При цьому максимальне число, що може бути подане у натуральному коді розрядної сітки, становить 2n–1, де n – кількість розрядів.

Необхідність виконання алгебраїчного додавання передбачає зображення числа сумісно зі своїм знаком, тому для подання таких чисел використовуються прямий, обернений і додатковий коди. Спосіб побудування цих кодів передбачає забезпечення таких вимог:

– запис алгебраїчного знака числа;

– подання від’ємних чисел за допомогою допоміжних додатних чисел, які відрізняються від відображення вихідних додатних чисел таким чином, щоб їх області зображення не збігалися;

– повна ідентичність алгоритмів виконання операцій над числами з однаковими і різними знаками, для забезпечення однотипності апаратного забезпечення для виконання цих операцій.

Прямий код (ПК)передбачає подання від’ємного числа таким чином, щоб у старшому розряді числа було показано його знак у вигляді 1, а в інших розрядах – його модуль. Старший розряд при цьому називають знаковим. Зображення додатного числа співпадає з його зображенням у натуральному коді, тому що знак + кодується у вигляді 0. При запису зручно знаковий розряд відокремлювати точкою після нього. Наприклад, – 98D = 1.1100010ПК.

Діапазон представлення від’ємних чисел у прямому коді сягає від 0 до

2n – 1 – 1, а для додатних чисел – 2n – 1.

Операція додавання для чисел, поданих у прямому коді виконується по-різному, в залежності від їх знаків. Так, якщо числа мають однакові знаки, то вони додаються і сумі надається знак, який мають обидва числа. Якщо числа мають різні знаки, то спочатку знаходиться більше за модулем число, потім виконується віднімання від нього меншого і результату привласнюється знак більшого з них.

До недоліків використання прямого коду можна віднести:

– не забезпечується ідентичність алгоритмів виконання операцій над числами з однаковими і різними знаками, що приводить до збільшення кількості операцій для отримання результату;

– нуль може мати два значення: додатне число (у вигляді байта) – 0.0000000 і від’ємне число -1.000000, що також потребує виконання додаткових операцій при обчисленнях.

Для усунення цих недоліків і виконання операції віднімання (алгебраїчного додавання) в обчислювальній техніці використовуються обернений і доповнювальний коди. Додатні числа у цих кодах подаються аналогічно прямому, а від’ємні обчислюються за певними алгоритмами.

Обернений код (ОК)від’ємного двійкового числа A, для певної розрядної сітки,обчислюється за виразом

Aоб = N – | A |,

де N – значення найбільшого беззнакового числа, що можливо розташувати у певній розрядній сітці – значення N для десяткових дробів становить

 

N = 2 – 2 – (n – 1),

а для цілих чисел

N = 2n – 1.

 

У цих виразах n – кількість бітів розрядної сітки для подання числа. Діапазон подання чисел в оберненому коді, що можливо подати у розрядній сітці, такий самий, як і у прямому коді.

За визначенням обернений код від’ємного числа є доповненням його модуля до найбільшого беззнакового числа, яке можливо розмістити у розрядній сітці. Таким чином, взаємне перетворення прямого й оберненого кодів від’ємного числа виконується як операція порозрядної інверсії всіх розрядів числа крім знакового, в якому необхідно записати 1.

Наприклад,

– 98D = 1.1100010ПК 1.0011101ОК.

 

До переваг оберненого коду можливо віднести простий взаємозв’язок прямого й оберненого кодів, у результаті чого взаємне перетворення цих кодів є порозрядною операцією, що спрощує і прискорює її виконання.

Недоліками цього коду є необхідність урахування перенесення зі старшого розряду, яке виникає при виконанні додавання, і наявність двох значень для нуля: додатне – 0.0000000 та від’ємне – 1.1111111.

Доповнювальний код (ДК)від’ємного двійкового числа A для певної розрядної сіткиобчислюється за виразом

 

Aоб = К – | A |,

 

де К – значення ваги розряду, який знаходиться за старшим розрядом використовуваної розрядної сітки – значення К для десяткових дробів становить

 

К = 2,

а для цілих чисел

К = 2n.

 

Діапазон подання чисел у доповнювальному коді для від’ємних чисел становить 0...2n – 1, де n – кількість розрядів подання числа.

Доповнювальний код від’ємного числа легко отримати, додаючи одиницю молодшого розряду до оберненного коду цього числа.


Для попереднього прикладу

 

– 98D = 1.1100010ПК 1.0011101ОК

+
1.0011101

1

1.0011110

1.0011101ОК 1.0011110ДК

 

Для визначення прямого коду числа, яке подано у доповнювальному коді, віднімається одиниця із молодшого розряду, в результаті чого отримаємо оберненний код, а далі виконуємо інверсію всіх розрядів числа.

Використання доповнювального коду ліквідує недоліки оберненного коду: перенесення із старшого розряду втрачається і не враховується у подальших обчисленнях; нуль у доповнювальному коді – тільки додатне число.

 

Контрольні питання:

1 Якими причинами обумовлене використання прямого оберненого і довнювального кодів?

2 Сформулюйте правило формування доповнювального кода.

3 Які недоліки існують при формуванні числа 0 в оберненому коді?

 

Контрольні питання підвищеної складності:

1 Подати число +92 у вигляді восьмирозрядного (з урахуванням знака) прямого, зворотного та доповнювального кодів.

2 Подати число -121 у вигляді восьмирозрядного (з урахуванням знака) прямого, зворотного та доповнювального кодів.