A_O_Melnik_Arkhitektura_komp_39_yuteriv
.pdf52
архітектурного рівня. На рівні мов програмування програміст працює з комп'ютером на таких мовах як: С, C++, F O R T R A N , Lisp, Pascal, Prolog. Користувач цього рівня бачить дуже мало з того, що робиться на нижчих рівнях.
На рис. 1.23 представлено сім рівнів організації комп'ютера, запропоновані Е. Таненбаумом. Біля кожного з рівнів показаний спосіб його підтримки, а в дужках - назва програми, яка цей рівень підтримує.
Рівень мови високого рівня
Трансляція
(компілятор)
Рівень мови асемблера
Трансляція
(асемблер)
Рівень операційної системи
Трансляція
(асемблер)
Рівень архітектури системи команд
Мікроархітектурний рівень
Цифровий логічний рівень
Апаратні засоби
Фізичний (транзисторний) рівень
Рис. 1.23. Сім рівнів організації комп'ютера
Ми не будемо розглядати фізичний та цифровий логічний рівні, які є предметом роз гляду комп'ютерної електроніки, прикладної теорії цифрових автоматів та комп'ютерної схемотехніки, та які читачеві потрібно знати, приступаючи до вивчення предмета ар хітектури комп'ютера. В даній книзі розглянемо рівень архітектури системи команд та частково знизу мікроархітектурний рівень, який з позиції функціонування та побудови елементів комп'ютера розглядається в курсі комп'ютерної схемотехніки, і зверху рівень операційної системи. З рівня архітектури системи команд програміст може працювати з комп'ютером, причому, на цьому рівні найбільше враховуються особливості побудови комп'ютера.
Разом з тим, для роботи з комп'ютером на рівні архітектури системи команд потріб но писати програму на машинній мові, тобто в командах, які є двійковими кодами, що є досить складним навіть для вирішення простих задач. Для спрощення написання ма шинних команд була введена асемблерна мова, коли команди представляються в мнемо нічній формі. Але це не спростило взаємодію людини з комп'ютером. З метою скорочен ня розриву між мовою людини та машини були введені мови програмування високого рівня. Рівні мов програмування орієнтовані на специфіку використання комп'ютера. Оскільки комп'ютер розпізнає команди починаючи з архітектурного рівня, перехід з ви-
53
щих рівнів на нижчі здійснюється за допомогою трансляторів та інтерпретаторів. Тран сляція передбачає перетворення з одного рівня на інший всього або частини тексту про грами до початку її виконання. Інтерпретація - це перетворення програми частинами в реальному часі, тобто під час виконання.
Оскільки кожен з рівнів сприймається по-іншому, користувачі сприймають комп'ю тери кожного рівня як окремі комп'ютери, які називають віртуальними машинами.
Виходячи з окресленого вище, матеріал даної книги викладено в наступній послідов ності.
В наступному, другому, розділі розкрито основні питання представлення даних в комп'ютері, які є важливими для розуміння матеріалу наступних розділів. В третьому розділі розглянуто основні елементи архітектури комп'ютера, які включають організа цію пам'яті, формати і типи команд, способи адресації. В четвертому розділі визначено місце процесора в комп'ютері, його функції та склад. В п'ятому розділі розглянуто кон флікти в конвеєрі команд та методи їх усунення. В шостому розділі розкрито основні питання виконання операцій обробки даних. В сьомому розділі розглянуто принципи побудови арифметико-логічного пристрою сучасних комп'ютерів. В восьмому розділі описано структуру та організацію роботи пристрою керування. В дев'ятому розділі по дано структуру пам'яті комп'ютера. В десятому розділі описано організацію взаємо дії між рівнями ієрархічної пам'яті та питання захисту пам'яті. В одинадцятому розділі наведено пояснення способів розпізнавання пристроїв введення-виведення, описано функції інтерфейсної схеми пристроїв введення-виведення та наведено методи керу вання введенням-виведенням. У дванадцятому розділі розглянуто питання подальшого підвищення продуктивності комп'ютерів шляхом створення паралельних комп'ютерних систем.
1.6. Підсумок розділу
У цьому розділі представлено короткий огляд організації й архітектури комп'ютер ної системи. Пояснено деяку термінологію в контексті комп'ютерної реклами. Описано основні функціональні вузли комп'ютера, їх функції та характеристики, а також тенден ції зміни цих характеристик. Багато чого з цієї термінології буде розширено в наступних розділах. Історично комп'ютери були досить простими, але з часом вони ускладнилися, що викликало необхідність проводити їх розгляд як ієрархію рівнів замість складної сис теми. Кожен рівень в цій ієрархії слугує певній меті, і всі рівні допомагають мінімізувати семантичний проміжок між мовою програмування високого рівня або застосуванням та вентилями і провідниками, які складають фізичні технічні засоби. Описано викону вані завдання та типи комп'ютерів. Можливо, найважливішим питанням цього розділу є введення поняття архітектури машини фон Неймана. Хоча є інші архітектурні моделі, архітектура фон Неймана є домінуючою в сьогоднішніх універсальних комп'ютерах.
1.7. Література для подальшого читання
Основні поняття, функції й основні функціональні вузли комп'ютера та їх взаємозв'я зок, а також загальна організація роботи комп'ютера детально розглянуто в літературі [1-4]. Тут же, а також в роботах [5-11], проведено детальний огляд історії створення та
54
розвитку комп'ютерів. Окремо потрібно сказати про роботу [5], в якій подано історич ний опис процесу створення комп'ютерів провідними науковими та промисловими під приємствами колишнього Радянського Союзу, в тому числі показано суттєві досягнення в цій галузі й українських науковців та інженерів. В роботі [12] наведено підтвердження дієвості закону Мура, а в роботі [13] описано багаторівневу організацію комп'ютера.
1.8.Література до розділу І
1.Burks, A. W., Н. Н. Goldstine, and J. von Neumann [1946]. "Preliminary discussion of the logical design of an electronic computing instrument," Report to the U.S. Army.
2.Amdahl, G. M. [1967]. "Validity of the single processor approach to achieving large scale computing capabilities," Proc. AFIPS 1967 Spring Joint Computer Conf. 30 (April), Atlantic City, N.J., 483-485.
3.Wilkes, M . V., D. J. Wheeler, and S. Gill [1951]. The Preparation of Programs for an Electronic Digital Computer, Addison-Wesley, Cambridge, Mass.
4.Augarten, Stan. Bit by Bit: An Illustrated History of Computers. London: Unwin Paperbacks,
1985.
5.Малиновский Б. M. История вычислительной техники в лицах. KIT, Киев, 1995.
6.Blaauw, G., & Brooks, F. Computer Architecture: Concepts and Evolution. Reading, MA: AddisonWesley, 1997.
7. Ceruzzi, Paul E. A History of Modern Computing. Cambridge, MA: MIT Press, 1998.
8.Cortada, J. W. Historical Dictionary of Data Processing, Volume 1: Biographies; Volume 2: Orga nization, Volume 3: Technology. Westport, CT: Greenwood Press, 1987.
9.McCartney, Scott. ENIAC: The Triumphs and Tragedies of the World's First Computer. New York: Walker and Company, 1999.
10.Möllenhoff, Clark R. Atanasoff: The Forgotten Father of the Computer. Ames, IA: Iowa State University Press, 1988.
11.Polachek, Harry. "Before the ENIAC." IEEE Annals of the History of Computing 19: 2 (June 1997), pp. 25-30.
12.Schaller, R. "Moore's Law: Past, Present, and Future." IEEE Spectrum, June 1997, pp. 52-59.
13.Tanenbaum, A. Structured Computer Organization, 4t h ed. Upper Saddle River, NJ: Prentice Hall, 1999.
1.9.Питання до розділу I
1.Що таке комп'ютер?
2.Дайте визначення алгоритму.
3.Дайте хронологію появи перших комп'ютерів.
4.Які основні функції комп'ютера? Які основні функціональні вузли комп'ютера? їх завдання та основні характеристики.
5.Назвіть три базових компоненти кожного комп'ютера.
6.Назвіть три типи пам'яті комп'ютера.
7.Який степінь 10 означає префікс Гіга? Якому степеню двійки він еквівалентний?
8.Який степінь 10 означає префікс мікро? Якому степеню двійки він еквівалентний?
9.Яка одиниця використовується для вимірювання тактової частоти комп'ютера?
10.Дайте пояснення суті закону Мура.
11.Як змінюється з часом тактова частота роботи процесора?
12.На скільки щороку зростає продуктивність комп'ютерів?
55
13.Як змінюється з часом ємність та час зчитування-запису динамічної напівпровідникової пам'яті?
14.Як змінюється з часом ємність зовнішньої дискової пам'яті?
15.Які одиниці використовуються для оцінки продуктивності комп'ютера?
16.Що дає використання тестових програм для оцінки продуктивності комп'ютера?
17.Які існують тестові програми для оцінки продуктивності комп'ютера?
18.Які є основні варіанти зв'язку між функціональними вузлами комп'ютера? Які їх відмін
ності?
19.Порівняйте двошинні структури комп'ютера з обміном через процесор та через пам'ять.
20.Як узгодити передачу даних між повільними і швидкими вузлами комп'ютера?
21.Поясніть роботу комп'ютера з одношинною структурою.
22.Що таке архітектура комп'ютера?
23.Що таке структура комп'ютера?
24.Що таке архітектура системи команд?
25.Яка різниця між архітектурою та структурою комп'ютера?
26.За якими ознаками здійснюється класифікація комп'ютерів?
27.Назвіть особливості архітектури Джона фон Неймана.
28.Які існують ненейманівські архітектури комп'ютерів? Які їх відмінні риси?
29.Назвіть два основних напрями використання комп'ютерів.
30.Що розуміється під паралельною обробкою?
31.Які є типи комп'ютерів?
32.Персональні комп'ютери - особливості та сфери застосування.
33.Як сконструйовано сучасний персональний комп'ютер?
34.Робочі станції - особливості та сфери застосування.
35.Багатотермінальні системи - особливості та сфери застосування.
36.Сервери - особливості та сфери застосування.
37.Великі універсальні комп'ютерні системи - особливості та сфери застосування.
38.Кластерні архітектури - особливості та сфери застосування.
39.Суперкомп'ютери - особливості та сфери застосування.
40.Мікроконтролери - особливості та сфери застосування.
41.Спеціалізовані комп'ютери - особливості та сфери застосування.
42.Поясніть ієрархічну природу комп'ютера.
43.Назвіть сім рівнів організації комп'ютера.
Розділ 2
\^ктт/ютері
У сучасних комп'ютерах використовують різні форми та формати представлення да них, якими є числа та закодовані символи. Це дозволяє вибирати ті із них, що найбіль шою мірою відповідають вимогам розв'язуваних задач. Тип використовуваних форм та форматів представлення даних суттєво впливає на характеристики комп'ютера.
У цьому розділі висвітлені основні питання представлення даних у комп'ютері, які є важливими для розуміння матеріалу наступних розділів. Описані позиційні системи числення та принципи подання даних у двійковому, вісімковому і шістнадцятковому кодах. Подані правила переведення чисел із системи числення з довільною основою до десяткової, а також переведення чисел із десяткової до системи числення з іншою осно вою. Розглянуті засади подання чисел зі знаком у прямому, оберненому та доповняль ному кодах. Проведено аналіз особливостей подання даних у форматах із фіксованою та з рухомою комою, включаючи п о д а н н я даних за стандартом ІЕЕЕ-754. Зважаючи на важливість, р о з г л я н у т о п и т а н н я кодування а л ф а в і т н о - ц и ф р о в о ї інформації кодами ASCII, E B C D I C та Unicode.
2.1.Позиційні системи числення
Система числення - це спосіб подання довільного числа за допомогою алфавіту сим волів, які називають цифрами . Є різні системи числення. Від їх особливостей залежить наочність відображення чисел та складність виконання операцій над числами. Прикла дом системи числення з дуже складним способом запису чисел і громіздкими правилами виконання арифметичних операцій є римська система числення.
Якщо в послідовності цифр, які зображають число, має значення позиція цифри, то систему числення називають позиційною. Такі системи числення характеризуються нао чністю відображення чисел та простим виконанням арифметичних операцій. У позиційних системах числення при безпосередньому представленні цифр число записується у вигляді:
X = х х |
,...х,х„,х ,...х . |
||
з |
в-1 |
1 (г -1 |
- т |
Кома у цій послідовності відділяє цілу частину числа від дробової. Позиції цифр, які рахуються від коми, називають розрядами. Кількісний еквівалент, що виражається цим
записом, визначається так: |
|
|
|
|
Х = к5 х+к5 "'х |
5-1 |
+ ... +к ! х,+к°х+к'х ,+...+к"т х |
, |
|
5 |
1 0 |
-1 |
- т |
|
Де: |
|
|
|
|
•к - основа системи числення, тобто кількість різних цифр, які використовуються
впозиційній системі числення,
57
• |
8+1 - розрядність цілої частини числа, |
• |
т - розрядність дробової частини числа, |
" |
х. - цифри і-го розряду запису числа (х. = 0, 1 , к - 1 ) , |
•к1 - вага і-го розряду.
Уцьому випадку вага і-го розряду в к разів більша за вагу (і-І)-го розряду. Такі сис теми числення називають системами з природним порядком ваги. До них належать двій кова, вісімкова, десяткова і шістнадцяткова системи числення.
Узвичній для нас десятковій системі числення довільне число подається цифрами від 0 до 9; при цьому має значення позиція цифри . Число в десятковій системі запису ється у вигляді:
азначення числа обчислюється за таким виразом:
В |
-ІО"-' + Ю„ |
• 10^'2 + ... + О, • |
10і + 0-10° + ГУ, • |
10г1 + ТУ |
• 10г2 + ... + ГУ • 10м, |
|
[4-І |
гі-2 |
І |
0 |
і |
2 |
М |
де:
• N - кількість цифр (розрядів) у цілій частині числа (зліва від коми),
• М - кількість розрядів у дробовій частині числа (справа від коми),
•Б. - значення і-го розряду (розряди цілої частини),
•Б'. - значення і-го розряду (розряди дробової частини),
•Б - значення числа.
Звичайно, що дробової або цілої частини числа може і не бути (Ы або М = 0).
2 . 2 . Двійкові, вісімкові та шістнадцяткові числа
У зв'язку з тим, що елементи з двома станами використовуються як базові елементи комп'ютерної техніки, всі числа в комп'ютерах представляються у двійковій системі чис лення. Розглянемо особливості цієї системи.
Двійкова система числення будується за тим самим правилом, що і десяткова, але в ній використовуються лише дві цифри - 0 та 1. Число у двійковій системі числення за писується у вигляді:
в= в„_,в„_2 ...в1в^в'1в'2...в'м,
азначення числа обчислюється за таким виразом:
В = В^ • 2"-' + Вы_2• 2"~2 + ... + ВІ. 2' + В0 • 2° + В\ |
• 2"' + В^ • 2~2 + ... + |
В'м • 2~м, |
де: |
|
|
N - кількість двійкових ц и ф р (розрядів) у цілій частині числа, |
|
|
М - кількість двійкових розрядів у дробовій частині числа, |
|
|
В. - значення і-го розряду цілої частини числа, |
|
|
В'. - значення і-го розряду дробової частини числа, |
|
|
В - значення числа. |
|
|
Приклади двійкових чисел: |
|
|
1011010,012 = 1.26 + 0 • 25 + 1 • 24 + 1 • 23 + 0- 22 + 1 • 2: |
+ 0- 2° + 0 • 2і + 1 • 2~2 |
= |
= 64+ 16 + 8 + 2 + 0,25 = 90, 25] 0 |
|
|
101,011012 = 1 • 22 + 1 • 2° + 1 • 2-2 + 1 • 2"3 + 1 . 2"5 = 5, 0406251 0 1100110, 112 = 102,75ш
Часто у розробника, а то і в користувача комп'ютера, виникає потреба в перевірці ко ректності виконання операцій над двійковими числами комп'ютером або його вузлом.
58
А оскільки в комп'ютерах опрацьовуються багаторозрядні двійкові числа, і оперувати з такими довгими послідовностями нулів та одиниць (наприклад, рядок із 32 цифр) не зручно, то набули поширення вісімкова та шістнадцяткова системи числення. У вісімковій системі числення використовують вісім цифр від 0 до 7, а у шістнадцятковій системі числення крім десяткових цифр від 0 до 9 використовують 6 літер латинського алфавіту
(А, В, С, Б, Е, Б) для позначення цифр від 10 |
до 15. Значення числа обчислюється за та |
||||
ким виразом: |
|
|
|
|
|
Н = Н•• |
104 + Н „ , • Іб*'2 + ... + Н |
• 16і + Нп• |
16° + Н' |
• 16-' + Н> |
• 16'2 +... + Н'м• 16м, |
N-1 |
N-2 |
1 0 |
1 |
2 |
М |
де:
• N - кількість ц и ф р (розрядів) у цілій частині числа (зліва від коми),
• М - кількість розрядів у дробовій частині числа (справа від коми),
•Н. - значення і-го розряду (розряди цілої частини),
• Н/ - значення і-го розряду (розряди дробової частини),
•Н - значення числа.
Особливістю цих систем є зручний перехід до двійкової системи та навпаки. Три двійкових розряди переводяться в один вісімковий, а чотири двійкових розряди - в один шістнадцятковий, як показано в табл. 2.1.
|
|
|
|
Таблиця 2.1 |
Двійкова |
Шістнадцяткова |
Двійкова |
Шістнадцяткова |
|
0000 |
0 |
1000 |
8 |
|
0001 |
1 |
1001 |
9 |
|
0010 |
2 |
1010 |
А |
|
ООП |
3 |
1011 |
В |
|
0100 |
4 |
1100 |
С |
|
0101 |
5 |
1101 |
|
|
0110 |
6 |
1110 |
Е |
|
0111 |
7 |
1111 |
Р |
|
Наприклад, двійкове число 01101101 у шістнадцятковій системі записуватиметься як 6Б . Для переведення чисел із шістнадцяткової та вісімкової систем числення у двійкову необхідно кожну цифру числа, яке переводиться, замінити відповідно чотириабо трирозрядним двійковим еквівалентом - тетрадою або тріадою, а отримані двійкові цифри розташувати на місцях шістнадцяткових або вісімкових цифр.
У разі необхідності переведення чисел із десяткової системи числення у вісімкову, шістнадцяткову та двійкову переведення робиться лише в одну систему (вісімкову або шістнадцяткову). Подальше переведення виконується через двійкову систему, викорис товуючи тріади та тетради.
Приклад 1. Переведемо нисло 12345,67 з десяткової системи числення у двійкову, ві сімкову, шістнадцяткову.
1. Переведення цілої частини числа у вісімкову систему:
12345 : 8 = 1543, залишок 1;
1543 : 8 = 192, залишок 7;
192 : 8 = 24, залишок 0;
24 : 8 = 3, залишок 0; 3:8 = 0, залишок 3.
59
Результат: 30071.
2.Переведення дробової частини числа у вісімкову систему: 0,67x8 = 5,36;
0,36x8 = 2,88;
0,88 х 8 = 7,04;
0,04x8 = 0,32.
Наближений результат: 0,5270....
3.Отримання повного результату шляхом об'єднання результатів, отриманих в п. 1 та п. 2. Результат: 30071,5270....
4. |
П е р е в е д е н н я р е з у л ь т а т у у д в і й к о в у та ш і с т н а д ц я т к о в у с и с т е м и ч и с л е н н я |
(табл |
. 2.2). Поділ двійкового числа на тріади та тетради починається від коми ліворуч і |
праворуч. Результат: 12345,6710=30071,52708=11000000111001,1010101112=3039,АВ816.
Таблиця 2.2
|
3 |
|
|
0 |
|
|
0 |
|
7 |
|
|
1 |
|
> |
5 |
|
|
|
2 |
|
|
7 |
|
|
0 |
|
8-кові |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
цифри |
|
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
|
0 |
1 |
1 |
1 |
0 |
|
0 |
1 |
> |
1 |
0 |
|
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
|
0 |
0 |
2-кові |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
цифри |
|
3 |
|
|
0 |
|
|
3 |
|
|
|
9 |
|
> |
|
А |
|
|
|
В |
|
|
|
8 |
|
16-кові |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
цифри |
2.3. Переведення |
|
чисел із системи числення з основою к |
|||||||||||||||||||||||||||||||
у десяткову |
систему |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
Один із методів переведення чисел із системи числення з основою к у десяткову сис тему числення ґрунтується на використанні кількісного еквівалента числа. Для пере ведення необхідно записати число у його кількісному еквіваленті, замінивши цифри системи числення з основою к та основу к їхніми десятковими еквівалентами, а потім обчислити вираз за правилами десяткової арифметики.
Приклад 1. Переведемо двійкове число 1011,1001 у десяткову систему числення. 1011,1001 = Ь23 + 0-2Ч1-2Ч1-2Ч1-2-'+0-2-2 +0-23+1-2'4 =
=8 + 0 + 2+1+0,5 + 0 + 0 + 0,0625 = 11,5625; Таким чином, 1011,10012 = 11,562510 .
Приклад 2. Переведемо вісімкове число 105,71 у десяткову систему числення. 105,71 = 1-82 + 0-81 + 5-8° + 7-8 1 + 1-8г = 64 + 0 + 5 + 0,875 + 0,015625 = 69,890625; Результат: 105,718 = 69,890625ш .
Приклад 3. Переведемо шістнадцяткове число 2ЕБ,0А до десяткової системи числення. 2ЕБ,0А = 2-162+ и - Іб'+ІЗ - ІбЧО - Іб'+Ю - Іб - 2 = 512 + 224 +13+0+0,0390625 =
=849,0390625;
Результат: 2 Е Д 0 А ] 6 = 849,0390625ш .
2.4.Переведення чисел із десяткової системи у систему числення з основою к
Розглянемо переведення чисел із десяткової системи числення у іншу однорідну по зиційну систему числення з основою к, коли дії виконуються в десятковій системі. У разі цього переведення окремо виконується переведення цілої частини числа й окремо - дробової; результати потім додаються.
60
Цілу частину десяткового числа X ділять на основу системи числення к за правила ми десяткової арифметики до отримання залишку, який буде десятковим еквівалентом цифри молодшого розряду результату. Якщо частка від ділення не дорівнює 0, то вона стає діленим і процес ділення на к продовжується. Як тільки чергова частка стане рівною 0, процес ділення на к припиняється. Залишок, який отримали у результаті першого ділення на к, є цифрою розряду результату з вагою к°, залишок у результаті другого ділення - циф рою з вагою к1 і т. д. Останній залишок є цифрою старшого розряду результату.
Дробова частина десяткового числа X множиться на к за правилами десяткової арифметики. В отриманому добутку від'єднується ціла частина, яка може дорівнювати 0, а дробова частина знову множиться на к із наступним від'єднанням цілої частини. Ця операція повторюється або до отримання нульової дробової частини добутку, або до отримання необхідної кількості розрядів числа Хк . Цифра старшого розряду результату переведення (тобто, перша після коми) збігається з першою від'єднаною цілою части ною, цифра другого розряду результату переведення - із другою від'єднаною цілою час тиною і т.д. При цьому від'єднані цілі частини необхідно представити в системі числення з основою к.
Приклад. Переведемо десяткове число 11,5625 у двійкову систему числення з точніс тю до п'яти розрядів після коми.
Переведення цілої частини:
11:2 = 5, залишок 1 (молодший розряд результату), 5:2 = 2, залишок 1, 2 : 2 = 1, залишок 0,
1:2 = 0, залишок 1 (старший розряд результату). Результат: П , 0 = 10112 .
Процедура переведення дробової частини наведена у табл. 2.3.
|
|
|
|
Таблиця 2.3 |
|
|
|
Результат |
Ціла частина |
|
|
|
|
результату |
Вага двійкового |
|
|
Крок |
Дріб |
множення |
|
||
множення, |
розряду |
|
|||
|
|
на к = 2 |
|
||
|
|
яка вилучається |
|
|
|
|
|
|
|
|
|
1 |
0.5625 |
1.125 |
1 |
Старший (перший |
|
|
|
|
|
після коми) |
|
2 |
0.125 |
0.25 |
0 |
|
|
3 |
0.25 |
0.5 |
0 |
|
|
4 |
0.5 |
1.0 |
1 |
Молодший |
|
5 |
0.0 |
0.0 |
0 |
|
|
Результат: 0.5625] 0 =0,100 1 02 .
Повний результат: 11,5625,0 = 1011 + 0,10010 = 1011,10010.,.
2.5. Представлення чисел зі знаком
Для позначення знаку числа в звичайній арифметиці використовують символи «-» та «+». Як зазначалося, у комп'ютерній техніці використовують елементи з двома ста нами, які можуть зберігати двійкову цифру (0 чи 1). Зрозуміло, що цю цифру доцільно використати і для позначення знаку числа, коли 0 відображає знак «+», а 1 - знак «-».
61
Для спрощення виконання арифметичних операцій додатні та від'ємні числа (тоб то числа зі знаком) відображаються спеціальними кодами: прямим, оберненим та допо вняльним.
2.5.1. Прямий код
У прямому коді лівий (його ще називають старшим) розряд позначає знак числа, а решта розрядів - саме число (рис. 2.1).
Знак числа
0=»+" 1="-"
3 |
с,, |
С ,2 |
|
Сі |
С0 |
V
Саме число в двійковому коді
Рис. 2.1. Прямий код двійкового числа
Прямий код двійкового п-розрядного числа Є визначається як [ С при в > 0;
І А + |С|, при в < 0;
де А - величина, рівна вазі старшого разряду розрядної сітки (для дробових чисел А = 1, а для цілих чисел А = 2П). Діапазон представлення чисел в прямому коді 0 < \Є\ < А. Додатні числа представляються кодами 0 < Спр < А, а від'ємні 0 < Спр < 2А
Ознакою представлення додатних або від'ємних чисел є наявність нуля або одиниці відповідно в старшому розряді, який називається знаковим. Цифрові розряди прямого коду представляють модуль числа, що забезпечує наочність представлення чисел в пря
мому коді |
|
|
|
|
|
Наведемо кілька прикладів |
|
|
|
|
|
5 = 00101 |
. . |
|
5 „ |
10101 прямий |
код |
10 |
прямий код |
. |
-25 10 |
111001 |
. . |
25, =011001 . |
|||||
10 |
прямий |
код |
|
прямий код |
|
|
|
|
|||
2.5.2. Обернений код
В оберненому коді, як і у прямому, старший розряд позначає знак числа (0 - додатне число, а 1 - від'ємне). Розряди додатного числа записуються у звичайному вигляді, а від'ємного - в інвертованому вигляді (замість 0 пишеться 1 і навпаки). На рис. 2.2 по казано обернений код двійкового числа.
0=»+" і =».<
|
|
|
|
|
э Іс», |
С.2 |
|
с, |
с 0 |
Рис. 2.2. Обернений код двійкового числа
