ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Арифметичні основи ЦВМ
         

     

    Інформатика, програмування

    Арифметичні основи ЦВМ

    1.1. Системи числення

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

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

    Введемо кілька визначень.

    Система числення - сукупність символів і правил для позначення чисел.

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

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

    Так, в десятковій системі числення, заснування якої дорівнює 10,розрізняють 10 арабських цифр - 0, 1, 2, ..., 9. Отже, при їївикористанні для запису числа, що не перевищує дев'яти, достатньо однієїцифри, і таке число записується як однорозрядних. А у випадку записучисла, більшого дев'яти, воно представляється як багаторозрядних. При цьомувага кожної більш старшого (розташованого зліва від поточного) розрядув десять (основа системи числення) разів більше поточного.

    Так, наприклад, число 359 - трехразрядное, і в ньому 9 - цифра розрядуодиниць, 5 - цифра розряду десятків, 3 - цифра розряду сотень (у 10 разівперевищує вагу розряду десятків). При цьому значення трехразрядного числа 359виходить підсумовуванням трьох доданків: 3 сотні + 5 десятків + 9 одиниць.

    Загальне правило визначення ваги розряду багаторозрядних числа таке:

    Якщо пронумерувати розряди цілого числа справа наліво, починаючи від

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

    Так, вага самого молодшого розряду цілих чисел дорівнює 1, оскільки номеррозряду дорівнює 0, а будь-яке число, у тому числі і число 10, зведена внульову ступінь, дає в результаті одиницю. Вага наступного ліворуч розрядудорівнює 10 в ступені 1, тобто дорівнює десяти, і т.д.

    Це ж правило справедливо і для запису дрібних чисел. При цьомурозрядами праворуч від розряду одиниць, що має номер 0, присвоюютьсянегативні значення: -1, -2, і т.д., а їх ваги виходять також призведенні підстави 10 у відповідний ступінь. Так, наприклад,вага третього розряду в дробової частини числа 42,9724 буде дорівнює 10 вступеня (-3), тобто дорівнює однієї тисячної.

    Зазначене правило можна проілюструвати наступним чином:


    | Число | 7 | 5 | 0 | 6 | 8 |, 2 | 5 | 9 |
    | Номер розряду | 4 | 3 | 2 | 1 | 0 | -1 | -2 | -3 |
    | Вага розряду | 10000 | 1000 | 100 | 10 | 1 | 0,1 | 0,01 | 0,001 |

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

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

    Двійкова система числення має підставу 2, і, отже, дварізних цифри - 0 і 1; вісімкова - вісім різних цифр - 0, 1, 2, 3, 4,
    5, 6, 7, а шестнадцатірічное - шістнадцять цифр - десять арабських цифр від 0до 9 і ще шість символів -

    А (цифра, що зображає десять), D (цифра тринадцять),

    В (цифра одинадцять), E (цифра чотирнадцять),

    С (цифра дванадцять), F (цифрап'ятнадцять).

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

    Ми вже говорили про те, що сучасні цифрові ЕОМ всі використовують вЯк основна двійкову систему числення. До її достоїнствналежить:

    . простота виконання арифметичних і логічних операцій, що тягне за собою простоту пристроїв, що реалізують ці операції;
    . можливість використання апарата алгебри логіки (булевої алгебри) для аналізу та синтезу операційних пристроїв ЕОМ.

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

    Таблиця 1.1

    | |
    | С і с т е м а з ч и с л е н н я |
    | 10 | 2 | 8 | 16 |
    | 0 | 0 | 0 | 0 |
    | 1 | 1 | 1 | 1 |
    | 2 | 0 1 | 2 | 2 |
    | 3 | 1 1 | 3 | 3 |
    | 4 | 1 0 0 | 4 | 4 |
    | 5 | 1 0 1 | 5 | 5 |
    | 6 | 1 1 0 | 6 | 6 |
    | 7 | 1 1 1 | 7 | 7 |
    | 8 | 1 0 0 0 | 1 0 | 8 |
    | 9 | 1 0 0 1 | 1 1 | 9 |
    | 10 | 1 0 1 0 | 1 2 | A |
    | +11 | 1 0 1 1 | 1 3 | B |
    | 12 | 1 1 0 0 | 1 4 | C |
    | 13 | 1 1 0 1 | 1 5 | D |
    | 14 | 1 1 1 0 | 1 6 | E |
    | 15 | 1 1 1 1 | 1 7 | F |
    | 16 | 1 0 0 0 0 | 2 0 | 1 0 |

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

    Наведемо правила перекладу чисел із двійкової системи в вісімкову
    (шестнадцатірічное) і навпаки.


    П1. Правило перекладу "8с/с -> 2c/c"

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

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

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

    Приклад.
    Перетворимо вісімкове число 371,62.
    Для цього запишемо для кожної цифри відповідну тріаду:

    3 -> 011

    7 -> 111

    1 -> 001

    6 -> 110

    2 -> 010

    Тепер можна записати число в двійковій формі (для наочності міжтріадами помістимо пробіли):

    371,62 -> 011 111 001, 110 010

    І, нарешті, запишемо отримане двійкове числа так, як це прийнято вматематики, без незначних нулів, а також відкинувши праві нулі вдробової частини числа:

    371,62 -> 11111001,11001


    П2. Правило перекладу "2с/с -> 8c/c"

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

    Приклад.
    Уявити двійкове число 1101100,01111101 у формі восьмеричного.

    Розіб'ємо вихідне число на групи по три цифри, прийнявши в якостіточки відліку місце розташування коми (для наочності між тріадамипомістимо пробіли):

    1 101 100, 011 111 01

    Тепер доповнимо до трьох цифр нулями саму ліву групу зліва і самуправу групу справа:

    001 101 100, 011 111 010

    І, нарешті, замінимо кожну тріаду відповідної вісімковійцифрою:

    001 101 100, 011 111 100 -> 154,372

    П3. Правило перекладу "16с/с -> 2c/c"

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

    Приклад. Перетворити шестнадцатірічное число "6C, 7D" в двійковуформу.

    Для цього запишемо для кожної цифри відповідну тетраду:

    6 -> 0110

    C -> 1100

    7 -> 0111

    D -> 1101

    Тепер можна записати число в двійковій формі (для наочності міжзошитами помістимо пробіли):

    6C, 7D -> 0110 1100, 0111 1101

    І, нарешті, запишемо отримане двійкове числа так, як це прийнято вматематики, без незначних нулів:

    6C, 7D -> 1101100,01111101


    П4. Правило перекладу "2с/с -> 16c/c"

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

    Приклад. Уявити двійкове число 1101100,01111101 у формішест-надцатірічного.

    Розіб'ємо вихідне число на групи по чотири цифри, прийнявши в якостіточки відліку місце розташування коми (для наочності між зошитамипомістимо пробіли):

    110 1100, 0111 1101

    Тепер доповнимо до чотирьох цифр нулями зліва саму ліву групу:

    0110 1100, 0111 1101

    І, нарешті, замінимо кожну тетраду відповідної шістнадцятковійцифрою:

    0110 1100, 0111 1101 -> 6С, 7D.

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

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

    1.2. Переклад чисел з однієї системи числення

    в іншу

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

    Правила перекладу цілих і дрібних чисел не збігаються, тому наведемо три правила перекладу чисел із системи числення з основою R в системучислення з основою Q.


    Правило 1. Переклад цілих чисел

    Для переведення цілого числа N, представленого в системі числення (с/с) з підставою R, в с/с з підставою Q необхідно дане число ділити на основу Q за правилами с/с з підставою R до отримання цілого залишку, меншого Q. Отримане приватне знову потрібно ділити на основу Q до отримання нового цілого залишку, меншого Q, і т.д., до тих пір, поки останнє приватне буде менше

    Q. Число N в с/с з підставою Q випаде у вигляді не впорядкованої послідовності залишків поділу в порядку, зворотному їх отримання (іншими словами, старшу цифру числа N дає останнє приватне).

    Приклад. Перетворити десяткове число 67 у двійкову форму.

    Підстава вихідної системи числення R = 107. Основа нової системичислення Q = 2.

    Згідно з наведеним правилом треба вихідне число 67 ділити наоснову нової системи (на 2) за правилами десяткової системи числення
    (початкова с/с).

    Оскільки процес поділу на 2 дуже простий, скористаємося наступнимприйомом: у лівому стовпчику будемо писати поточні приватні, а у правому - поточнізалишки від їх ділення на 2 (це може бути або 0, або 1):

    67 1 При діленні 67 на 2 виходить приватне 33 і залишок 1;

    33 1 при діленні 33 - приватна 16 і залишок 1 і т.д.

    16 0

    8 0

    4 0

    2 0

    1 1 старший цифра

    0,4486 * 2 = 0,8972 0

    0,8942 * 2 = 1,7944 1

    0 , 7944 * 2 = 1,5888 1

    0,5888 * 2 = 1,1776 1

    0,1776 * 2 = 0,3552 0

    0,3552 * 2 = 0,7104 0

    шукалося подання число 0,7243 у двійковій системі числення
    -> 0,101110.
    Зверніть увагу, що для отримання шести цифр дробу виконано сіммножень
    Це пов'язано з необхідністю виконати округлення, щоб представитидріб заданої довжини більш точно.

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

    Приклади.

    . Десяткова дріб 0,2 видається нескінченним дробом
    0,33333 ... в шістнадцятковій системі числення (підстави с/з 10 і
    16).
    . Шестнадцатірічное дріб 0, В1 представляється кінцевої дробом
    0,10110001 в двійковій системі числення (підстави з/с 16 і 2).


    Правило 3. Переклад неправильного дробу

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

    1.3. Двійкові коди для десяткових цифр

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

    Згідно формули Хартлі для подання 10 різних цифр потрібночотири біта інформації:

    3 біти

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

    Найбільш поширені двійковій-десяткові коди, у яких дляпредставлення десяткових цифр використовуються позиційні методи кодування.
    Так, якщо розглядати чотири двійкових розряду тетради якчотирирозрядний двійкове число, то ваги її окремих розрядів ліворучнаправо будуть дорівнюють відповідно 8, 4, 2 і 1.

    Тому перший двійковій-десятковий код, який ми розглянемо,позначається як код "8421". Його можна назвати кодом з природнимивагами.

    У цьому коді кожна десяткова цифра видається її двійковимеквівалентом:

    цифра 0 як 0000, цифра 1 як 0001, цифра 2 як 0010, цифра 5 як 0101, цифра 8 як 1000, цифра 9 як 1001.

    У той же час , маючи чотири двійкових цифри, можна уявити не 10,а 16 різних комбінацій. Таким чином, при використанні коду "8421"шість комбінацій: 1010, 1011, ..., 1111 залишаться невикористаними,тобто не будуть зображувати жодної з десяткових цифр. Ці комбінаціївважаються забороненими.

    а) Коди з надлишком

    Крім розглянутої системи кодування досить широковикористовуються також так звані коди з надлишком. Розглянемо групукодів "8421" з надлишком ".

    Код" 8421 "з надлишком W" будується за наступними правилами:

    При кодуванні десяткової цифри, до неї спочатку додають W, і потім отримане число представляють як двійкове в коді "8421".

    Значення W може бути рівним 1, 2, 3, 4, 5 або 6. При будь-якому значеннінадлишку W шість з шістнадцяти комбінацій залишаться невикористаними.
    Тільки для різних надлишків ці значення будуть різними.

    Приклад. Розглянемо код "8421" з надлишком 3 ".

    а) Уявімо цифру 8 в даному коді.

    Спочатку збільшимо 8 на 3. Вийде 11.
    Потім запишемо 11 в коді "8421". Вийде 1011.
    Число 1011 і є подання цифри 8 в даному коді.

    б) Відновимо цифру, яка зображується комбінацією 0101.

    Спочатку наведемо десяткове число, розглядаючи комбінацію 0101, як його зображення в коді "8421". Вийде число 5.
    Потім віднімемо з нього (з 5) надлишок 3. Вийде 2.
    Це і є шуканий відповідь: Комбінація 0101 зображує десяткову цифру 2 в коді "8421" з надлишком 3 ".в) Відновимо цифру, яка зображується комбінацією 1110.

    Відновимо десяткове число. Вийде 14.
    Віднімемо з нього надлишок 3. Вийде 11.
    Оскільки 11 не є?? есятічной цифрою (це двухразрядное десяткове число), робимо висновок, що комбінація 1110 не зображує ніякої десяткової цифри і є забороненою.

    б) Код "2421"

    Крім кодів з природними вагами розрядів застосовуються і інші.
    Одним з широко відомих кодів є позиційний код, побудований звикористанням тетради двійкових цифр, ваги яких зліва направо рівнівідповідно: 2, 4, 2 і 1.

    Уявімо коди цифр у таблиці:


    | Цифра | Код "2421" | Цифра | Код "2421" |
    | 0 | 0000 | 5 | 0101 або 1011 |
    | 1 | 0001 | 6 | 0110 або 1100 |
    | 2 | 0010 або 1000 | 7 | 0111 або 1101 |
    | 3 | 0011 або 1001 | 8 | 1110 |
    | 4 | 0100 або 1010 | 9 | 1111 |

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

    Наприклад, комбінації 0100 і 0010 зображують цифру 2, комбінації 1010і 0100 зображують цифру 4 і т.д. Відмінною рисою даного кодує те, що в ньому немає невикористаних (заборонених) комбінацій.

    в) Код "2 з 5"

    Цей код належить до непозиційної кодами. Як і всі непозиційноїкоди він визначається табличним способом. Його назва відображає принциппобудови коду: будь-яка десяткова цифра представляється комбінацією з
    5 двійкових цифр, в якій точно дві цифри 1 і, отже, три цифри
    0.

    Уявімо таблицю одного з можливих варіантів для даного коду:


    | Цифра | Код | Цифра | Код |
    | 0 | 11000 | 5 | 01010 |
    | 1 | 00011 | 6 | 01100 |
    | 2 | 00101 | 7 | 10001 |
    | 3 | 00110 | 8 | 10010 |
    | 4 | 01001 | 9 | 10100 |

    Всі інші можливі комбінації, в яких число одиниць не однодвом, є забороненими.

    Також як і всі коди на основі тетради "8421", останній кодналежить до групи кодів, що володіють так званими діагностичнимиможливостями: Якщо відомо, що деяка комбінація повинна зображатидесяткову цифру, але потрапляє в область заборонених, значить сталосяперекручування інформації. Ця властивість кодів активно використовується в апаратурі
    ЕОМ.

    Для закріплення матеріалу з перекладу чисел з однієї системи численняв іншу виконаємо кілька прикладів.

    Приклад 1. Уявити десяткове число 581 у двійковій,вісімковій і шістнадцятковій системах числення.

    Завдання можна вирішити з мінімальними витратами зусиль, виконавши,наприклад, переклад в двійкову с/р за загальним правилом (тобто поділом напідставу 2 за правилами десяткової системи числення), а потім здвійковій у восьми-і шестнадцатірічное системи числення, використовуючиспрощені правила (кодуванням відповідно зошити і тріад).

    Приклад 2. Уявити десяткове число 993,761 в двійковій ішістнадцятковій системах числення.

    Завдання можна вирішити таким же чином, як і попередню.

    Приклад 3. Уявити шестнадцатірічное число 8363 в десятковійсистемі числення.

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

    Що ж це за правила? Це такі ж правила додавання, віднімання,множення і ділення, що і в десяткового с/с, але над числами впозиційної шістнадцятковій с/с.

    Виконаємо переклад:

    8 3 6 3 A
    _ (131)

    (130) D 2 3 A

    ------- A

    1 6 ---- 1 5 0 A

    _ (22) 3 2 _ (21)

    (20) _ (50) (20) 2 1 A

    ----- (50) ----- _ (33)

    2 3 ----- 1 0 (30) 3

    _ (35) 0 3 _ (16) -----

    (30) (10) 3

    ----- -----

    5 6

    шукалося число в десяткового системі дорівнює 33635.

    Примітка. В круглих дужках записані десяткові еквівалентивідповідних шістнадцяткові чисел. При цьому в кожній парі чисел,розташованих один під одним, перше число - часткове ділене, а другий
    - Твір дільника на часткове приватне. Так запис (131) --еквівалент шестнадцатірічное ділене 83, а (130) - результат множеннядільника А (= 10) на D (13).

    1.4. Арифметика цифрових обчислювальних машин

    Як вже говорилося вище, практично всі сучасні цифрові ЕОМ уЯк основна використовують двійкову систему числення. А всеарифметичні операції над двійковими числами можна звести до двохелементарним - складання і зрушення двійкових кодів, що зображують числа.
    Це дозволить технічно реалізувати чотири дії арифметики в одномупристрої, що зветься арифметико-логічному (АЛП), використовуючи одні й тіж електричні схеми.

    1.4.1. Представлення чисел зі знаками

    При виконанні арифметичних операцій в ЕОМ застосовують прямий,зворотний і додатковий коди.

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

    Тому в ЕОМ, незалежно від величини числа, його код завждимає фіксовану кількість двійкових цифр.

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

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

    Так, код 011101, згідно з цими правилами, зображує позитивне
    (сама ліва цифра - 0) двійкове число 11101.

    Для того, щоб більш просто, і, отже, більш економічнореалізувати пристрій АЛУ застосовують кілька різних кодів чисел. Цепов'язано з тим, що різні операції в ЕОМ більш просто реалізуються в різнихкодах.

    При виконанні арифметичних операцій в ЕОМ застосовують прямий,зворотний і додатковий коди чисел.

    Прямий код двійкового числа - це саме двійкове число, в якому всі цифри, які зображують його значення, записуються як у математичного запису, а знак числа записується двійковій цифрою. < p> При цьому жодного символу, що відділяє цю цифру від старшої цифри,що використовується при зображенні його величини, не допускається. У таких випадкахговорять про те, що призначення цифри в коді визначається його позицією.

    Приклади.

    зображуване число Код
    . +1101 (+13) 0000 1101 (У прикладах коди)
    . +1011101 (+93) 0101 1101 (зображуються)
    . 1101 (-13) 1000 1101 (вісьмома цифрами)

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

    Однак стосовно операцій додавання і віднімання такий коднезручний: правила рахунку для позитивних і негативних чиселрозрізняються. Щоб прояснити цю обставину, уявімо що довжинакоду (слова) дорівнює 5 двійковим розрядів і запишемо кілька чисел у ньому:

    | Число | -2 | -1 | 0 | 1 | 2 |
    | Код | 10010 | 10001 | 00000 | 00001 | 00010 |

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

    Прямий код використовується при зберіганні чисел в пам'яті ЕОМ, а також привиконання операцій множення і ділення.

    Щоб побудувати більш прості схеми АЛУ запропоновані і активнозастосовуються зворотний і додатковий коди.

    Зворотний код позитивного числа збігається з прямим, а при записі від'ємного числа всі його цифри, крім цифри, що зображає знак числа, замінюються на протилежні (0 замінюється на 1, а 1

    - на 0).

    Приклади запису.

    зображуване число Код
    . +1101 (+13) 0000 1101 (У прикладах коди)
    . +1011101 (+93) 0101 1101 (зображуються)
    . 1101 (-13) 1111 0010 (вісьмома цифрами)

    Зіставлення цієї записи з прямим кодом показує, щобезпосередньо відновити абсолютну величину (модуль) негативногочисла непросто. Проте, в цьому коді як до позитивних, так і донегативним числах можна застосовувати одні й ті ж правила, а операцію А-Вможна замінити операцією додавання чисел А і "мінус В".

    Подивимося, як видається послідовні числа при переходічерез нуль:


    | Число | -2 | -1 | 0 | 1 | 2 |
    | Код | 11101 | 11110 | 00000 | 00001 | 00010 |

    З прикладу видно, що перехід через нуль також не виглядаєприродним. Зазначена особливість тягне за собою і наступне - взворотному коді нуль зображують два розрізняються комбінації: 00000 (+0) і
    11111 (-0), що ускладнює апаратну реалізацію операцій.

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

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

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

    Проілюструємо це на прикладі.

    Число -> - 101101

    Прямий код -> 1101101

    Зворотний код -> 1010010

    1
    Додатковий -> 1010011

    Приклади запису.

    зображуване число Код
    . +1101 (+13) 0000 1101 (У прикладах коди)
    . +1011101 (+93) 0101 1101 (зображуються)
    . 1101 (-13) 1111 0011 (вісьмома цифрами)

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

    2 -> 11101 + 1 = 11110

    1 -> 11110 + 1 = 11111

    0 -- > 11111 + 1 = (1) 00000 (перенесеннявідкидається)

    1 -> 00000 + 1 = 00001

    2 -> 00001 + 1 = 00010

    Для відновлення прямого коду числа з додаткового потрібноповністю повторити (і саме в тому ж порядку!) дії, яківикористовувалися при перекладі з прямого в додатковий код: спочатку всіцифри, крім цифри, що зображає знак, замінити на протилежні, а потімдодати 1.

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

    1.4.2. Додавання і віднімання чисел

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

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

    Приклад 1. Скласти числа 12 і -5.

    а) У зворотному коді

    Десяткова форма -> +12 -5

    Двійкова форма -> +1100 -101

    Прямий код -> 00001100 10000101

    Зворотний код -> 00001100 11111010

    Виконаємо додавання в стовпчик:

    0 0 0 0 1 1 0 0

    1 1 1 1 1 0 1 0
    ===============< br> (1) 0 0 0 0 0 1 1 0

    + 1 (Додавання 1 перенесення)

    ==============

    0 0 0 0 0 1 1 1

    Отже, результат у зворотному коді = 00000111.

    Оскільки знаковий розряд дорівнює 0, результат позитивний, і,отже, запис коду числа збігається із записом прямого коду. Теперможна відновити алгебраїчну запис результату. Він дорівнює 111
    (незначущий нулі відкинуті), або в десяткового формі 7.

    Перевірка (+12-5 = +7) показує, що результат вірний.

    а) У додатковому коді

    Десяткова форма -> +12 -5

    Двійкова форма -> +1100 -101

    Прямий код -> 00001100 10000101

    Зворотний код -> 00001100 11111010

    1

    Додатковий код -> 00001100 11111011

    Виконаємо додавання в стовпчик:

    0 0 0 0 1 1 0 0

    1 1 1 1 1 0 1 1

    ============< br> (1) 0 0 0 0 0 1 1 1

    (Перенесення ігнорується)

    Отже, результат в додатковому коді = 00000111.

    Оскільки знаковий розряд дорівнює 0, результат позитивний, і,отже, запис коду числа збігається із записом прямого коду. Теперможна відновити алгебраїчну запис результату. Він дорівнює 111
    (незначущий нулі відкинуті), або в десяткового формі 7.

    Перевірка (+12-5 = +7) показує, що результат вірний.

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

    1.5. Кодування чисел в ЕОМ

    У ЕОМ застосовується частіше всього одна з двох форм представлення чисел:
    . з фіксованою комою;
    . з плаваючою комою.

    Числа представляються в машинному слові, що має для конкретної ЕОМзавжди фіксоване число розрядів (бітів). Це число є однією знайважливіших характеристик будь-якій ЕОМ і називається розрядністю машини. Різнірозряди слова при кодуванні команд і даних мають неспівпадаючіфункціональні призначення. При розгляді їх функцій використовують такожтермін "розрядна сітка машини".

    1.5.1. Числа з фіксованою комою

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

    Визначимо діапазон представимо чисел.

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

    Тоді максимальне (за абсолютною величиною) ціле дорівнюватиме
    999999 чи інакше 10 ** 6-1. А оскільки в розрядної сітці машини длязапису знака числа завжди передбачається один розряд, то для нашоговипадку діапазон представимо чисел складе всі цілі числа,починаючи від
    -999999 До 999999, а кількість різних цілих - 2 * 10 ** 6-1.

    У двійкових ЕОМ їх розрядність визначається числом розрядів в слові.
    Так, якщо розрядність деякої ЕОМ дорівнює 16, то один розряд відводитьсядля кодування знака числа, а інші 15 - для запису його величини.
    При цьому максимальне за модулем ціле значення в машинному слові будедорівнює 2 ** 15-1, що складе 32767. (Подивіться діапазон цілих (integer)чисел в мові програмування Паскаль для ПЕОМ типу IMB PC).

    У загальному випадку, якщо розрядність машини становить N бітів. Тодімаксимальне за абсолютною величиною ціле число, яке можна в нійзаписати, буде дорівнює 2 ** (N-1) -1.

    Особливості арифметичних операцій над числами

    Оскільки (якщо стан коми фіксовано після останньої цифричисла) числа з фіксованою комою - цілі, вони є вмашині точно. А тому операції додавання, віднімання та множення коректнізавжди: як операнди, так і результат - цілі числа.

    Єдиною особливістю, про яку необхідно згадати, єситуація, яка носить назву "переповнення розрядної сітки"
    (FixedOverflow - переповнення з фіксованою комою) і яка виникає,коли результат множення перевищує максимально можливе для даноїрозрядності значення. Ця ситуація вважається в ЕОМ винятковою. При їївиникненні записати вийшло значення неможливо. У цьому випадкувстановлюється в "1" спеціальний прапор переповнення, старший бітрезультату (біт переносу зі старшого розряду слова) губиться, а в якостірезультату видається спотворене число. Описувана ситуація не вважаєтьсяк?? ітіческой, і після закінчення даної операції обчислення тривають.
    Таким чином, програміст сам повинен подбати про коректної реакції навиникнення переповнення, використовуючи для виявлення зазначеноїситуації вміст прапора переповнення.

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

    5/2 = 2

    5/3 = 1

    5/4 = 1

    5/5 = 1

    5/6 = 0

    І на відміну від множення, з позицій ЕОМ ніяких помилок при цьому немає,і ніякі прапори не встановлюються, а зазначені особливості розподілу цілихповинні враховуватися програмістом самостійно. У ряді мовпрограмування ці особливості відображаються набором допустимихарифметичних операцій. Так, наприклад, у мові Паскаль для цілих
    (integer) визначені дві операції:

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

    Приклади:

    5 div 3 = 1

    5 mod 3 = 2

    1.5.2. Числа з плаваючою комою

    У формі з плаваючою комою число представляється двома компонентами:мантиси і порядком. Мантиса використовується для запису цифр числа, апорядок - для вказівки положення комою.

    розрядна сітка машини в цьому випадку ділиться на кілька частин:один розряд - для кодування знака числа (це завжди найстарший,лівий, розряд слова);
    M розрядів - для запису мантиси;
    Р розрядів - для запису порядку (з урахуванням його знака).

    Розташування комою при цьому теж строго фіксується: вважається,що мантиса завжди представляється як число, менше одиниці, але таке, вякому перша цифра після коми для всіх абсолютно чисел відмінна від нуля
    (єдиний виняток становить число 0). Така форма поданнямантиси називається нормалізованому. Інакше кажуть, що мантисанормалізована (приведена до вигляду: 1

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status