Машинні коди двійкового числа - СтудІзба
Машинні коди двійкового числа
У ЕОМ з метою спрощення виконання арифметичних операцій застосовують спеціальні коди для представлення чисел. З допомогою цих кодів спрощується визначення знака результату операції. Операція віднімання (або алгебраїчного складання) чисел зводиться до арифметичного додавання кодів, полегшується вироблення ознак переповнення розрядної сітки. Через війну спрощуються устрою ЕОМ, виконують арифметичні операції.
Для представлення чисел зі знаком ЕОМ застосовують прямий, зворотний і додатковий коди.
Загальна ідея побудови кодів є такою. Код трактується як число без знака, а діапазон чисел, що подаються кодами, без знака розбивається на два піддіапазони. Один із них представляє позитивні числа, інший – негативні. Розбиття виконується таким чином, щоб приналежність до піддіапазон визначалася максимально просто.
Найбільш поширеним і зручним є формування кодів таким чином, щоб значення старшого розряду вказувало на знак чисел, що представляють, тобто. використання такого кодування дозволяє говорити про старший розряд як про знакове (біт знака) і про інші як про цифрові розряди коду.
Прямий код двійкового числа утворюється із абсолютного значення цього числа та коду знака (нуль для позитивних чисел або одиниця для негативних чисел) перед його старшим числовим розрядом.
Цифрові розряди прямого коду містять модуль числа, що представляється, що забезпечує наочність представлення чисел у прямому коді (ПК).
приклад. Записати прямий код чисел та
Рішення: Розглянемо однобайтове уявлення двійкового числа.
У прямому коді нуль має двояке зображення: - Позитивний нуль, -негативний нуль.
У загальному випадку ОК є доповненням модуля вихідного числа до найбільшого без знака, поміщеного в розрядну сітку.
У зворотному коді (ОК), як і у прямому коді, позначення позитивного числа використовується біт, рівний нулю, і знака негативного – одиниці.
Зворотний код позитивного двійкового числа збігається з прямим кодом. Зворотний код негативного двійкового числа містить одиницю у знаковому розряді, формується доповненням модуля вихідного числа нулями до найстаршого розряду модуля, а потім заміною порозрядної всіх нулів числа на одиницю і всіх одиниць на нулі. Зворотний переклад здійснюється у тій самій послідовності.
приклад. Записати зворотний код чисел та
Робота із зворотним кодом викликає низку труднощів. Зокрема, виникають два нулі: позитивний та негативний, тобто. у прямому коді (у якому представлені позитивні числа) має місце, а у зворотному коді (в якому представлені негативні числа).
Додатковий код (ДК) будується в такий спосіб.
Додатковий код позитивного двійкового числа збігається з прямим кодом. Для негативних двійкових чисел спочатку формується зворотний код (ОК), потім до молодшого розряду (МЗР) додають 1. Зворотний переклад ДК в ПК здійснюється аналогічними операціями у тому послідовності.
приклад. Записати додатковий код чисел та
Використання ДК уявлення негативних чисел усуває двозначне уявлення нульового результату (виникнення двох нулів: позитивного і негативного), оскільки негативний нуль зникає.
У випадку використанням ДК для запису негативних чисел можна перекрити діапазон десяткових чисел від –2 k -1 до +2 k -1 -1, де k –число використовуваних двійкових розрядів, включаючи знаковий. Так, з допомогою одного байта можна уявити десяткові числа від до , або лише позитивні числа від 0 до 255 (тут під позитивними числами розуміються числа без знака). Обидва ці способи представлення чисел (зі знаком і знака) широко застосовуються в ЕОМ.
У ЕОМ використовується швидкий спосіб формування ПК. Його суть полягає у наступному. Двійкове число в ПК проглядається від молодшого розряду до старшого. Поки зустрічаються нулі, їх копіюють до однойменних розрядів результату. Перша одиниця, що зустрілася, також копіюється у відповідний розряд, а кожен наступний біт вихідного числа замінюється на протилежний (0 - на 1, 1 - на 0).
приклад. Записати додатковий код числа двома способами.
1 спосіб (швидкий).
Як бачимо, результати, отримані під час перетворення обома методами, збігаються.
Модифіковані зворотні та додаткові коди
Модифіковані зворотні та додаткові коди двійкових чисел відрізняються відповідно від зворотних та додаткових кодів подвоєнням значень знакових розрядів. Знак «+» у цих кодах позначається двома нульовими розрядами, а «–» – двома одиничними розрядами. Метою введення модифікованих кодів є фіксація та виявлення випадків переповнення розрядної сітки. У цьому випадку перенесення із значущого розряду може спотворити значення молодшого знакового розряду. Значення знакових розрядів "01" свідчить про позитивне переповнення розрядної сітки, а "10" - про негативне переповнення.
Запитання для самоперевірки:
1. Дайте визначення системи числення. Які системи числення Ви знаєте?
2. Сформулюйте правило перекладу цілих чисел із однієї системи числення до іншої.
3.Сформулюйте правило переведення дробових чисел із однієї системи числення до іншої.
4. У чому особливість переведення чисел із вісімкової (шістнадцяткової) системи числення в двійкову і навпаки?
5. Сформулюйте правило формування прямого, зворотного та додаткового кодів двійкового числа.