ДОМ
|
Информационные технологии |
Низкоуровневое программирование |
3. АРИФМЕТИЧНІ ТА ЛОГІЧНІ ОСНОВИ ПРОГРАМУВАННЯ 4. МОДЕЛЬ МІКРОПРОЦЕСОРНОЇ СИСТЕМИ. ПРЕДСТАВЛЕННЯ ДАНИХ І СИСТЕМА КОМАНД 5. ОПЕРАТОРИ ДЛЯ ЗАПИСУВАННЯ АЛГОРИТМІВ ЛІНІЙНИХ ПРОЦЕСІВ 6. ОФОРМЛЕННЯ АЛГОРИТМІВ З ГАЛУЖЕННЯМ 7. ОФОРМЛЕННЯ АЛГОРИТМІВ ЦИКЛІЧНОГО ТИПУ 8. ПРОГРАМУВАННЯ НА МОВІ НИЗЬКОГО РІВНЯ return_links(); ?> |
АРИФМЕТИЧНІ ТА ЛОГІЧНІ ОСНОВИ ПРОГРАМУВАННЯ
Поняття системи числення
Ми звикли вести рахунок десятками (10 одиниць утворює десятку, 10 десятків -
сотню і т.д.), тобто вести рахунок у десятковій системі числення. Рахувати
можна не тільки десятками. Існують і інші системи числення.
Під системою числення розуміють сукупність правил
зображення чисел цифровими знаками.
Розрізняють позиційні й непозиційні системи числення.
В непозиційних системах числення вага кожного знака
не залежить від його положення по відношенню до інших знаків у числі, кількість
знаків не обмежена.
У римській системі числення: I - 1, V - 5, X - 10 і т. д.
В одиничній системі числення число сім представляється сімома одиничками:
(7)10 = (1111111)1
Недоліками непозиційних систем числення є:
громіздкість зображення чисел;
труднощі у виконанні операцій.
Наочність зображення чисел і відносна простота виконання операцій характерні
для позиційних систем числення.
Система числення називається позиційною, якщо при
записуванні числа одна і таж цифра має різне значення, яке визначається місцем
(позицією), на якому вона знаходиться.
В позиційній системі числення для записування числа використовується обмежена кількість знаків - цифр, яка визначає назву
системи числення і називається її основою.
Араби взяли за основу число 10, тому що в якості
обчислювального пристрою вони використовували 10 пальців рук. В десятковій
системі числення для записування числа використовується десять цифр
0,1,2,3,4,5,6,7,8,9 і основою є число 10. Число у десятковій системі числення
можна представити у вигляді полінома (у вигляді степенів десяти):
(327)10 = 3·102+2·101 + 7·100 Системи числення, які використовуються в комп'ютерах
Система числення з основою N=2 є позиційною системою
числення і нічим не відрізняється від позиційної система числення з будь-якою
основою.. Але для комп'ютера ця система числення має вагомі переваги, які
полягають у тому, що її алфавіт має всього два символи. Для фіксації цих
символів достатньо мати деякий пристрій, що може мати два суттєво різних і
стійких стани.
Для людини двійкова система є громіздкою. Їй звична десяткова система, у
якій відпрацьовані прийоми записування чисел по його імені, визначення імені по
запису, визначення ваги числа по його запису й імені, відпрацьовані прийоми
додавання, віднімання, множення й ділення будь-яких чисел. У двійковому записі
числа важко визначити його значення, немає поняття імені саме двійкового числа,
важко зіставити ланцюжок 1 і 0 із його змістом. Виникає потреба перетворювати
двійкові записи у десяткові і навпаки.
Приклади:
(5)10 = (101)2 = 1·22 + 0·21 + 1·20 В обчислювальній техніці і програмуванні значне місце займають вісімкова й
шістнадцяткова системи числення. Вони використовуються для скороченого запису
двійкових кодів.
У вісімковій системі числення в якості цифр використовують символи: 0, 1, 2,
3, 4, 5, 6, 7. В шістнадцятковій системі потрібно 16 символів, в якості яких
використовують арабські цифри і п'ять букв латинського алфавіту, що утворюють
послідовність (із врахуванням ваги шістнадцяткових цифр): 0, 1, 2, 3, 4, 5, 6,
7, 8, 9, А, В, C, D, E, F.
Приклади:
(75,67)8 = 7·81 + 5·80 + 6·8-1 + 7·8-2 Десяткові еквіваленти символів A, B, C, D, E, F:
A = 10, B = 11, C = 12, D = 13, E
= 14, F = 15
Переведення чисел із десяткової системи числення у будь-яку
іншу
Переведення цілого числа з десяткової системи числення у будь-яку іншу здійснюється шляхом послідовного ділення числа на основу нової системи
числення. Ділення виконується до тих пір, поки остання частка не стане менше
дільника. Отримані остачі від ділення, взяті у зворотному порядку, будуть
значеннями розрядів числа в новій системі числення. Остання частка дає старшу
цифру числа.
Для переведення правильного дробу з десяткової системи числення у
будь-яку іншу потрібно помножити заданий дріб на основу нової системи
числення. Отримана ціла частина добутку буде першою цифрою після коми дробу в
новій системі числення. Далі по черзі множаться дробові частини добутків на
основу нової системи. Отримані цілі частини добутків будуть цифрами дробу у
новій системі числення. Цей процес продовжують до тих пір, поки не буде
знайдено число із заданою точністю.
Для переведення змішаного числа з десяткової системи числення в іншу
необхідну окремо перевести цілу й дробову частини за вказаними правилами, а
потім об'єднати результати у змішане число.
Переведення чисел із будь-якої системи числення в десяткову
Для переведення чисел із будь-якої системи числення в десяткову необхідно це
число представити у вигляді полінома і розкрити всі члени полінома в десятковій
системі числення.
Переведення чисел із двійкової системи числення у
вісімкову, із двійкової у шістнадцяткову і навпаки
Для переведення двійкового числа у вісімкову систему числення необхідно
розбити двійкове число на тріади ( групи по три розряди ) вправо й вліво від
коми, доповнюючи крайні тріади до повних нулями. Далі переводять кожну тріаду
із двійкової системи числення у вісімкову.
При переведенні вісімкового числа у двійкову систему числення кожна
вісімкова цифра записується двійковою тріадою (див. табл. 1).
Приклад: (111001,011000)2 = (71,30)8
При переведенні вісімкового числа у двійкову систему числення кожна
вісімкова цифра записується двійковою тріадою.
Аналогічно виконується переведення чисел із двійкової системи числення у
шістнадцяткову систему числення і навпаки. При цьому для кожної шістнадцяткової
цифри ставиться у відповідність двійкова тетрада (див табл. 2).
Організація оперативної пам'яті ЕОМ
Будь-яку скінчену послідовність нулів і одиниць прийнято називати двійковим
кодом. У кожному конкретному випадку цей код має чітку й однозначну інтерпретацію.
В одному випадку він розглядається як число, а в іншому представляє собою деяке
поняття, наприклад, символ якого-небудь алфавіту.
Числа представляються у двійковій системі числення.
З метою стандартизації в ЕОМ використовують американський стандартний код
для обміну інформацією ASC II ("аскі" код). Восьмибітний розширений
ASC II забезпечує представлення 256 символів, включаючи символи для
національного алфавіту (28 = 256).
Нагадаємо. що вихідною одиницею інформації є біт, зберігання якого здійснюється
фізичним елементом, що може знаходитися в одному із двох стійких станів.
Сукупність деякої кількості таких елементів створює комірку пам'яті. Комірка,
що містить вісім біт (вісім розрядів), є базовою і називається байтом.
Кількість біт у комірці пам'яті визначає її довжиною.
Оперативна пам'ять ЕОМ представляє собою сукупність базових комірок, кожна з
яких має свій порядковий номер, починаючи з нуля. Кількість базових комірок ОП
прийнято робити кратним величині 1024 байта (1 Кбайт).
Базова комірка має довжину у вісім біт. Якщо в ній зберігаються цілі числа,
то у двійковій системі числення туди можна розмістити число не більше 255 (у
шістнадцятковій системі числення - FF). Звичайно, довжина комірки для
зберігання даних повинна бути більшою ніж один байт. Виникає необхідність
формування з базових комірок більш довгі, хоча інколи необхідно й більш короткі,
аж до одного біта.
Встановлено типові комірки, що складаються з базових:
слово - містить два байти;
подвійне слово - містить чотири байти;
четвірне слово - містить вісім байт.
В особливих випадках використовують типові комірки, що містять шістнадцять
байт.
Правило записування слова в оперативну пам'ять:
Символ h у записі AFC9h означає, що це є шістнадцяткове представлення
двійкового коду.
Мікропроцесор при звертанні до комірки оперативної памўяті формує її адресу.
Адресою типової комірки є адреса молодшого байта.
На рис. 1 схематично показано розміщення слова AFC9h в базових комірках
оперативної пам'яті.
Форми представлення чисел в ЕОМ
В ЕОМ числа можуть бути представленими у двійковій та двійково-десятковій
системах числення.
Зокрема, в ЕОМ є дві форми представлення чисел у двійковій системі числення:
Процесор сучасного комп'ютера працює тільки з двійковими кодами, тобто
тільки з цілими числами. При описуванні даних. які не являються цілими, їх
називають дійсними. Для виконання однієї операції над дійсними числами
процесору потрібно виконувати десятки команд. При обчисленні суми двох дробів
затримки у часі не відчувається. Але при виконанні програми, призначеної для
складних наукових розрахунків, кількість операцій для центрального процесора
збільшується, що уповільнює виконання програми.
Для прискорення виконання операцій (програми) з дійсними числами існує
спеціальний пристрій - сопроцесор.
Сопроцесор - це пристрій. призначений спеціально для роботи з дійсними
числами.
У комп'ютера нижче 486-го сопроцесор може входити, а може і не входити до
складу апаратної частини. У 486-го і вище комп'ютера сопроцесор обов'язково
входить до складу апаратної частини.
Двійково-десяткова форма представлення чисел
В ЕОМ часто виконують операції над десятковими числами без їх переведення у
двійкову систему числення. При введенні чи виведенні десяткові числа
представляють у вигляді ланцюжка символів - цифр десяткової системи числення.
Під кожну десяткову цифру виділяють один байт пам'яті. У такому вигляді можна
вводити числа, що містять від однієї до шістнадцяти цифр.
Код цифри у байті складається з двох частин: ХХХХ 0101
Значення першої тетради "ХХХХ" несуттєве (краще записати нулі).
Друга тетрада "0101" - це двіковий код цифри 5 (десяткова цифра
заміняється на двійкову тетраду)
Приклад:
При кодуванні числа -573 перша тетрада "1011" - код знака мінус
При виконанні операцій над двійково-десятковими числами здійснюється процес упаковки
коду. При цьому старша тетрада байта очищається у всіх цифрах числа.
Число -573 буде мати такий двійково-десятковий код в упакованому форматі:
Приклад: (356)10 = (0011 0101 0110)2-10
Код числа в упакованому вигляді може займати шістнадцять байт. Це означає,
що можна опрацьовувати десяткові числа, що містять 31 десятковий розряд.
Приклад: Запишіть десяткове число 1982 у неупакованому та упакованому
форматах. Запишіть це число в двійковій системі числення.
У двійковій системі числення: 11110111101
Кодування чисел
В ЕОМ кількість двійкових розрядів для записування зокрема цілих чисел
фіксована і звичайно дорівнює 8, 16, 32 і називається розрядною сіткою
комп'ютера.
У перших ПК була 8-розрядна сітка. Більшість сучасних ПК мають 32-розрядну
сітку. Досить рідко зустрічаються комп'ютери з 16-розрядною сіткою.
Приклад: 8-розрядної сітки, у яку записано двійковий код числа (+23)10:
де, 0-6 - цифррові розряди із вказівкою ваги кожного з них, Приклад: 16-розрядної сітки, у яку записано двійковий код числа (+23)10:
де, 0-14 - цифррові розряди, а 15-й біт - це біт знаку.
Від'ємні числа зберігаються у пам'яті у доповняльному коді, а додатні - у
прямому.
Прямий код числа - це двійкове зображення його
абсолютного значення із закодованим знаком.
Обернений код числа отримують шляхом інверсії
цифрових розрядів.
Доповняльний код числа отримують додаванням одиниці
до молодшого розряду оберненого коду.
Приклад: Представити у 8-розрядній сітці число (-35)10 у
прямому, оберненому та доповняльному кодах.
Переповненням розрядної сітки називають момент, коли результат не вмістився
у розрядну сітку.
Арифметичні дії в двійковій, вісімковій та шістнадцятковій
системах числення
Арифметичні дії в двійковій, вісімковій та шістнадцятковій системах числення
виконуються за тими ж правилами, що і в десятковій системі числення, але враховують,
що основою системи числення є 2, 8, 16.
Приклади:
Двійкова арифметика в комп'ютерах
В ЕОМ операції віднімання, множення, ділення здійснюються за допомогою
операції додавання. Наприклад, при відніманні від'ємник записується у
доповняльному коді і віднімання заміняється додаванням.
Приклад: 23 + 22 = 45
<>
Приклад: 23 - 13 = 23 + (-13 ) = 10
(-13)10 = (1 0001101)пр. = (1 1110010)об. =
(1 1110011)доп.
Приклад: 7 - 13 = 7 + (-13) = -6
Оскільки результат від'ємний (біт знаку містить одиницю), то він
представлений у доповняльному коді. Для перевірки правильності виконання
операції потрібно перейти до прямого коду, який визначає абсолютне значення
результату. Для цього порібно:
Приклад: (- 7 - 13) = (-7) +(-13) = -20
1 0010100пр. - прямий двійковий код числа ( -20 )10
Контрольні запитання і задачі
|
Copyright © Eugene, 2007 |