727

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

Курсовая

Информатика, кибернетика и программирование

Аналіз сучасного стану розвитку систем числення. Подання чисел у формі з фіксованою та плаваючою комою. Лістинг програми на Microsoft Visual Studio 2010. Позиційною системою числення є звичайна десяткова система числення. Переведення з однієї системи числення в іншу.

Украинкский

2013-01-06

1.27 MB

265 чел.

Міністерство освіти і науки, молоді та спорту України

Вінницький національний технічний університет

Інститут інформаційних технологій та комп’ютерного інтелекту

Факультет КІ

Кафедра ПЗ

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

Пояснювальна записка 

з дисципліни «Організація функціонування ЕОМ та систем»

до курсової роботи за спеціальністю

«Програмна інженерія»

08-26.ОФЕОМ та С.016.00.000 ПЗ

Керівник курсової роботи

викладач Денисюк А. В.

__________________

(підпис)

«__» __________ 2011 р.

Розробив студент гр. 1КН мс-11

____________ Скобченко І.І.

    (підпис)

«__» __________ 2011 р.

Вінниця 2011

Міністерство освіти і науки, молоді та спорту України

Вінницький національний технічний університет

Інститут інформаційних технологій та комп’ютерного інтелекту

ЗАТВЕРДЖУЮ

Зав. кафедри  ПЗ, проф.., д.т.н.

____________ Пєтух А. М.

     (підпис)

«__» __________ 2011 р.

ІНДИВІДУАЛЬНЕ ЗАВДАННЯ

на курсову роботу

з дисципліни «Організація функціонування ЕОМ та систем»

Студента Скобченка Ігора Ігоровича факультету КІ групи 1КН мс-11

ТЕМА  Системи числення. Переведення чисел з однієї системи в іншу.

Постановка задачі.

1.1. Перевести число А=011010,0111 з двійкової системи в систему з основою Q=10. Зробити перевірку. Дробову частину переводити до четвертої цифри після коми.

1.2. Перевести число B=3400123401,3401 з системи з основою P=6 в систему з основою N=8. Зробити перевірку.

1.3. Перевести число С=1234,6982 з десяткової системи  в системи з основою 2,4,8,16.

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

Дата видачі «__» __________ 2011 р.  Керівник _____________________

         (підпис)

     Завдання отримав  ____________

          (підпис)

Анотація

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



Зміст

Анотація 3

Зміст 4

ВСТУП 5

1 Аналіз сучасного стану розвитку систем числення 7

1.1 Загальна характеристика систем числення 7

1.1.1 Непозиційні системи числення 7

1.1.2 Позиційні системи числення 9

1.2 Подання чисел у мікропроцесорах 10

1.2.1 Подання цілих чисел 10

1.2.2 Подання чисел у формі з фіксованою комою 12

1.2.3 Подання чисел у формі з плаваючою комою 12

1.2.4 Діапазон чисел у формі з плаваючою комою 15

2 Переведення з однієї системи числення в іншу 16

3 Аналітично-розрахункова частина 21

3.1 Завдання 1.1 21

3.2 Завдання 1.2 21

3.3 Завдання 1.3 22

4 Розробка прорами (Завдання 2.1) 25

4.1 Вибір мови програмування 25

4.2 Реалізація на Microsoft Visual Studio 2010 25

4.2.1 Вказівки програмісту 25

4.2.2 Вказівки користувачеві 27

4.2.3 Оцінювання складності  реалізації програми 29

ВИСНОВКИ 30

Перелік посилань 31

Додаток А. Лістинг програми на  Microsoft Visual Studio 2010 32

Додаток Б. Блок-схема реалізації на  Microsoft Visual Studio 2010 34

ВСТУП

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

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

Оскільки робота обчислювальної техніки основана на позиційній системі числення, то переведення чисел з однієї системи в іншу не втрачає своєї актуальності. Найширше і найчастіше явне переведення чисел у програмуванні зустрічається при використанні мови програмування «Асемблер», наприклад, при визначенні адреси комірки пам’яті у якій буде зберігатись певна інформація. У комп’ютерній техніці найчастіше застосовуються такі системи числення: двійкова і шістнадцяткова.

Двійкову систему числення дуже зручно використовувати для арифметичних операцій: додавання, віднімання, ділення. Особливо зручно її використовувати для операції множення, шляхом зсуву одного з операндів, у двійковому виді, вліво на таке число позицій у який стоїть одиниця в другому операнді [1].

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

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

 

  1.  
    Аналіз сучасного стану розвитку систем числення
    1.  Загальна характеристика систем числення

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

Сукупність цифр, які складають дану систему числення називають її основою, позначається вона латинською літерою Р. За основою системи числення розрізняють такі основні системи: двійкова – складається з чисел 1 і 0, використовується для  обчислення арифметичних операцій в мікропроцесорах, на основі яких зараз побудована майже вся побутова техніка і персональні комп’ютери; десяткова – використовується людьми для виконання арифметичних операцій, складається з діапазону чисел від 0 до 9; шістнадцяткова – використовується у обчислювальній техніці для запису адрес комірок пам’яті, складається з чисел від 0 до 15 але після 9 числа записані як великі латинські літери A,B,C,D,E,F.

Також системи числення поділяються на позиційні і непозиційні.

  1.  Непозиційні системи числення

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

Для встановлення значення числа недостатньо знання типу і алфавіту системи числення. для цього також необхідне ще задання правила, що дозволяє по значенню цифр встановити значення числа. Наприклад, для визначення значення числа 867 в звичайній десятковій системі числення застосовується функція десяткового складання, тобто значення числа визначається по значенню цифр (8 в крайній лівій позиції, 7 в крайній правій позиції, 6 між ними) звичайним підсумовуванням: значення числа 867 є 800+60+7 [5].

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

В римській системі числення в основі лежать символи I (один палець) для числа 1, V (розкрита долоня, п’ятірня) для числа 5, X (дві складені долоні) для 10, а для позначення таких чисел як 50, 100, 500 і 1000 існують спеціальні символи.

Для позначення чисел 100, 500 і 1000 у римській системі числення стали застосовувати перші букви відповідних латинських слів (Centum — сто, Demimille — половина тисячі, Mille — тисяча), а для позначення числа 50– застосовувати знак L.

Для запису числа, римляни використовували не тільки додавання, але й вирахування ключових чисел. При цьому застосовувалося таке правило: якщо значення символу який стоїть ліворуч менше від значення символу який стоїть праворуч, то значення меншого символу, поставленого ліворуч від більшого, віднімається зі значення більшого знаку. Наприклад, запис IX у римській системі числення позначає число 9, а запис XI — число 11. Десяткове число 28 представляється наступним чином:

XXVIII = 10 + 10 + 5 + 1 + 1 + 1.

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

MCMXCV = 1000 + (1000 - 100) + (100 -10) + 5,

MVM = 1000 + (1000 - 5) і так далі.

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

  1.   Позиційні системи числення

Системи, в яких зміна позиції цифри в числі змінює його значення, називаються позиційними. Позиційною системою числення є звичайна десяткова система числення [2].

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

Загальновживана форма запису числа є насправді не що інше, як скорочена форма запису розкладу за степенями основи системи числення, наприклад:

130678=1*105+3*104+0*103+6*102+7*101+8

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

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

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

  1.   Подання чисел у мікропроцесорах

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

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

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

  1.   Подання цілих чисел

Беззнакові цілі числа представляються натуральним кодом. Натуральним кодом називають подання числа як цілого беззнакового у двійковій системі числення. Діапазон чисел у натуральному коді для n-розрядної сітки складає від 0 до , тобто для 8-розрядної сітки діапазон чисел у натуральному коді складає від 0 до 255.

Для подання цілих знакових чисел використовуються наступні коди: 1)прямий код; 2)обернений код; 3)додатковий код. Старший розряд сітки є знаковим. Значення цього розряду дорівнює нулю для додатних чисел і одиниці – для від‘ємних. В інших розрядах розміщується модуль числа. Додатні числа подаються однаково у всіх трьох кодах. Так, додатне число +5310 має вигляд, поданий на рис.1.5. Але оскільки старший розряд є знаковим, діапазон додатних чисел складає від 0 до 2n-1-1. Наприклад, для 8-розрядної сітки діапазон додатних чисел складає від 0 до +127. Подання від‘ємних чисел залежить від використання того чи іншого коду.

Подання від‘ємного числа у прямому коді здійснюється наступним чином: у старшому, знаковому, розряді розміщується 1, а в інших розрядах – модуль числа. Діапазон від‘ємних чисел у прямому коді складає від 0 до –(2n-1-1). Перевагами прямого коду є простота виконання арифметичних операцій та однаковий діапазон значень додатних і від‘ємних чисел. Недоліками прямого коду є те, що операції додавання і віднімання чисел з різними знаками потребують додаткових операцій для визначення більшого за модулем числа та знаку результату. Крім того, наявність знаку при поданні числа 0 (+0=000000 і -0=1000000) потребує виконання зайвих операцій.

Подання від‘ємного числа у оберненому коді здійснюється обчисленням числа, яке доповнює додатне число з тим самим модулем до найбільшого беззнакового числа, яке може бути розташоване в даній розрядній сітці. Одержання оберненого коду від‘ємного числа зводиться до порозрядного інвертування розрядів додатного числа, включаючи знаковий розряд. Діапазон від‘ємних чисел у оберненому коді складає від 0 до –(2n-1-1). Перевагами оберненого коду є простота операцій одержання та додавання чисел із різними знаками, недоліками - два подання нуля: +0=00000000 і -0=111111111, а також потреба в апаратній реалізації коригування результату.

Подання від‘ємного числа у додатковому коді здійснюється обчисленням числа, яке доповнює додатне число з тим самим модулем до найбільшого беззнакового числа, з подальшим додаванням одиниці до результату. Інакше кажучи, додатковий код отримується шляхом додавання 1 до оберненого коду. Додатковий код можна одержати за наступним формальним правилом: цифри прямого коду додатного числа необхідно інвертувати послідовно зліва направо до останньої одиниці, не включаючи її. Останню праву одиницю і наступні за нею (праворуч) нулі необхідно залишити без зміни. Діапазон від‘ємних чисел у додатковому коді складає від 0 до –2n-1. Перевагами додаткового коду є простота операцій одержання та додавання чисел із різними знаками, а також те, що нуль має єдине подання  0=00000000. Завдяки цим перевагам додатковий код використовується найбільш часто [6].

  1.  Подання чисел у формі з фіксованою комою

Для розміщення двійкового числа, що містить цілу і дробову частини (без урахування знака) у n-розрядній сітці k комірок приділяють для розміщення цілої частини та n-k комірок – для розміщення дробової. При такому поданні двійкових чисел положення коми у розрядній сітці фіксовано. Якщо кількість розрядів у дробовій частині перевищує n-k, то молодші розряди, які знаходяться за межами розрядної сітки, не сприймаються мікропроцесором. Будь-яке двійкове число, менше, ніж 2n-k, сприймається як нульове і називається машинним нулем [2]. У результаті відкидання молодших розрядів дробової частини числа, розташованої за межами розрядної сітки, виникає похибка подання. Максимальне значення абсолютної похибки подання  не перевищує одиниці молодшого розряду сітки:

                                                              (1.1)

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

m ≤ N ≤ M дорівнює

                                                           (1.2)

Мінімальне значення відносної похибки має місце з поданням максимального числа М:

                      (1.3)

а максимальне значення відносної похибки – з поданням мінімального числа m:

                               (1.4)

  1.  Подання чисел у формі з плаваючою комою

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

Число N зображують у вигляді добутку. Першим множником є правильний дріб а, який називається мантисою числа. Другим множником є основа 2, піднесена до степеня р, який називається порядком числа:

                                                        (1.5)

Мантиса і порядок є знаковими числами. Для зазначення знаків у розрядній сітці відводяться 2 додаткових розряди. З такою формою подання існують різні варіанти запису одного і того самого числа. Наприклад, число 11,012 можна записати як або як . Таким чином, кома у мантисі може зсуватися (плавати), а мантиса може набувати різних значень, менших від одиниці, при відповідних значеннях порядку. Форма подання числа, в якому старший розряд мантиси не дорівнює 0, називається нормалізованим. Всі інші форми подання є ненормалізованими.

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

При запису двійкового числа у формі з плаваючою комою у (n+2)-розрядній сітці k комірок приділяють для розміщення мантиси, а n-k комірок – для розміщення порядку, а 2 розряди – для зазначення знаків (рис.1.1)

Рис. 1.1 Подання чисел у формі з плаваючою комою

У нормалізованій формі значення мантиси завжди більше або дорівнюють 1/2, але не перевищують одиниці. Вага молодшого розряду мантиси дорівнює 2-k, а вага старшого розряду дорівнює 2-1. Максимальне значення мантиси складає 1-2-k і при збільшенні k наближується до одиниці. Максимальне значення числа, що визначає порядок, дорівнює 2n-k-1.

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

                                            (1.6)

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

                                                (1.7)

Абсолютна похибка  подання двійкових чисел визначається вагою молодшого розряду мантиси і є істотно різною для великих чисел (порядок максимальний) і малих чисел (порядок від‘ємний і за модулем максимальний). Максимальне значення абсолютної похибки визначається наступним чином:

                                            (1.8)

де знак “+” відноситься до похибки подання великих чисел, а знак “-“ – малих чисел.

Відносна похибка подання двійкового числа N визначають як . При поданні максимального числа значення відносної похибки є мінімальним:

                       (1.9)

При поданні мінімального числа значення відносної похибки є максимальним:

                     (1.10)

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

  1.  Діапазон чисел у формі з плаваючою комою

Діапазон чисел у формі з плаваючою комою істотно ширший, ніж із фіксованою комою. Наприклад, при 16-розрядній сітці (n=16) діапазон подання чисел у формі з фіксованою комою визначається 16 двійковими розрядами. У формі з плаваючою комою, в якій для розміщення мантиси відведено k=10 розрядів з урахуванням знакових розрядів діапазон  визначається 127 розрядами. Максимальна відносна похибка в першому випадку дорівнює , а в другому –                     

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


  1.  Переведення з однієї системи числення в іншу

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

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

Для переведення в вісімкову або шістнадцяткову системи числення можна скористуватись тріадами і тетрадами відповідно.

Переклад чисел з однієї системи числення в іншу:

    6     4      4     3      1     2     4      0

    A      9       7        D


Таблиця 1– Вісімкові і шістнадцяткові системи числення:

Десяткове число

Вісімкове число

Тріади

Шістнадцяткове число

Тетради

0

0

000 000

0

0000

1

1

000 001

1

0001

2

2

000 010

2

0010

3

3

000 011

3

0011

4

4

000 100

4

0100

5

5

000 101

5

0101

6

6

000 110

6

0110

7

7

000 111

7

0111

8

10

001 000

8

1000

9

11

001 001

9

1001

10

12

001 010

А

1010

11

13

001 011

В

1011

12

14

001 100

С

1100

13

15

001 101

D

1101

14

16

001 110

Е

1110

15

17

001 111

F

1111

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

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

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

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

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

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

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

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

_97

2

96

_43

2

1

42

_21

2

1

20

_10

2

1

10

_5

2

0

4

_2

2

1

0

   0

Записуємо отримані залишки в зворотному порядку і отримуємо шуканий результат:

9710=10001112.

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

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

2. Представити число у вигляді суми добутків значень цифр числа на відповідні їх позиціям вагові коефіцієнти Хі * Nі (N – основа двійкової системи числення, дорівнює 2).

3. Виконати розрахунок за правилами десяткової арифметики.

Приклад, нехай нам потрібно перевести число 1000111.001 з двійкової системи числення в десяткову. Видно що це число – дріб, це важливо враховувати при переведенні чисел. Визначимо відповідність цифр початкового числа їх позиціям Хі в числі.

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

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

  1.  
    Аналітично-розрахункова частина
    1.  Завдання 1.1

Для того  щоб перевести число з двійкової системи числення в десяткову, скористаємося поліномом:

011010,01112=0*25+1*24+1*23+0*22+1*21+0*20+0*2-1+1*2-2+1*2-3+1*2-4= =26,437510

  1.  Завдання 1.2

Спочатку переводимо дане число до десяткової СЧ :

3400123401,34016  = 3*69+ 4*68+0*67+0*66+1*65+2*64+3*63+4*62+0*61+1*60+3*6-1+4*6-2+0*6-3+1*6-4= 30233088+6718464+7776+2592+648+144+1+1/2+1/9+1/1296=36962713,611910

Далі переводимо число з десяткової системи числення до системи числення з основою 8.

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

36962713    8

36962712    4620339    8

 1    4620336   577542    8

                      3   577536   72192  8

              6   72192   9024  8

               0   9024     1128   8

                 0    1128    141   8

                0    136       17      8

                                                5     16      2

                         1

Ціла частина становить 215000631

Тепер переведемо дробову частину за допомогою множення

0,   6111

          8

4,   8888

              8

7,  1104

              8

0,   8832

          8

7,   0656

Отже число 3400123401,3401  з основою числення 6 становить215000631,4707 у системі числення з основою 8.

  1.  Завдання 1.3

Перевести число С=1234,6982 з десяткової системи числення в системи з основою 2,4,8,16.

1)З десяткової у двійкову систему числення

1234  2

1234 _617   2

    0    616   _308   2

             1      386  _154   2

                       0      154   _77    2

                                  0      76    _38    2

                                             1     38    _19    2

                                                     0       18    _9      2

                                                               1       8       _4      2

                                                                        1         4       _2     2

                                                                                   0         2     1

                                                                                              0

0, 6982

        2

1, 3964

        2

0, 7928

        2

1, 5856

        2

1, 1712

 

Відповідь: 1234,698210=10011010010,10112

2)З десяткової у четвіркову систему числення

1234  4

1232   _308  4

    2      308   _77     4

              0       76    _19      4

                         1      16        _4      4

                                     3        4      1

                                               0

0,  6982

       4

2,  7928

       4

3,  1712

        4

0,  6848

       4

                                                     2,  7392

 

Відповідь: 1234,698210=103102,23024 

3)З десяткової у вісімкову систему числення

1234       8

1232   _154       8

   2       152    _19        8

               2       16       2

                          3

0, 6982

        8

5, 5856

        8

4, 6848

        8

5, 4784

        8

3, 8272

Відповідь: 1234,698210=2322,54538

4)З десяткової у шістнадцяткову систему числення

1234  16

1232  _77   16

    2     64   4

           13

0, 6982

      16

                                                              11, 1712  

      16

2, 7392

        16

0, 9472

     16

                                                              11, 8272

Відповідь: 1234,698210=4D,В20В 16


  1.  Розробка прорами (Завдання 2.1)

  1.    Вибір мови програмування

Cьогодні існує багато мов програмування і пакетів для створення цих видів програмного забезпечення. Це такі програми: Borland C/C++, Visual Basic, Visual C++, Builder C++, Java, Visual C#. В кожній з цих мов є свої переваги та недоліки. Але найрозповсюдженішою стала мова Visual С#, яка представляє собою потужний і складний пакет для створення програмного забезпечення для Windows. Пакет Microsoft Visual C# має стандартний набір компонентів для розробки програм.

  1.  Реалізація на Microsoft Visual Studio 2010
    1.  Вказівки програмісту

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

public static void Information()

       {

           Console.WriteLine(" \n\t\t\t Курсова робота ");

           Console.WriteLine("\tНа тему:\"Переведення чисел з однiєi системи числення в iншу.\"");

           Console.WriteLine("");

           Console.WriteLine("\n\n\n\n\n\n\n\t\t\t\t Виконав студент групи 1КН-мс11 - Скобченко Ігор");

           Console.WriteLine("\n\n\n\n\n\n\n\n\n\n\t\t\t Для початку роботи натиснiть 'Enter'");

           Console.ReadLine();

           Console.Clear();

       }

Рис. 1  – Лістинг методу Information()

Протягом усієї роботи програми використовуються такі функції як Console.WriteLine() i Console.ReadLine(), котрі виводять інформацію на екран консолі і записують інформацію введену з клавіатури.

Функція  Console.Clear()  –  очищує вікно консолі від тексту.

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

Console.WriteLine("Вкажiть число в двiйковiй системi числення  або 'q' для виходу:");

string zmin1 = Console.ReadLine();

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

Console.WriteLine("Введiть коректнi данi!!!");

Дана команда використовується за допомогою набору команд по перевірці вхідного тексту:

bool exit = false;

           while (!exit)

           {

               Console.WriteLine("Вкажiть число в двiйковiй системi числення  або 'q' для виходу:");

               string zmin1 = Console.ReadLine();

               //Перевірка введених данних на коректність

               char[] perevirka = new char[zmin1.Length];

               perevirka = zmin1.ToCharArray();

               bool neVirno = false;

               foreach (char item in perevirka)

               {

                   if (item == 'q')

                   {

                       exit = true; break;

                   }

                   if (item != '0' && item != '1')

                   {

                       neVirno = true;

                   }

               }

               if (exit)

               {

                   break;

               }

               else

               {

                   if (neVirno)

                   {

                       Console.WriteLine("Введiть коректнi данi!!!"); }

Як працює даний фрагмент коду? Спочатку введена інформація зберігається в рядкову змінну, потім створюється масив символів perevirka, в який конвертується введена інформація з рядка за допомогою команди perevirka = zmin1.ToCharArray(), потім за допомогою циклу перебираються всі елементи даного масиву на наявність літери “q”, якщо така знайдена то відбувається вихід із циклу, якщо ні то відбувається перевірка чи користувач не ввів інших чисел окрім 1 чи 0, якщо є інші інші числа чи символи, то видається повідомлення про помилку «Введіть коректні дані!!!», якщо введені дані правильні програма виконується далі.

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

string rez = Convert.ToString(Convert.ToInt32(zmin1, 2), 10);

Console.WriteLine("Число {0} в десятковій системi числення дорiвнює: {1}", zmin1, rez);

Розглянемо докладніше рядок Convert.ToInt32(zmin1, 2). Переведення в C#  виконуються за допомогою класу Convert далі після крапки викликається статична функція Convert.ToInt32(zmin1, 2), вона є статичною тому що не потрібно створювати екземпляр класу для того щоб її викликати. Дана функція приймає два параметри – рядок який буде конвертовано і система числення в яку буде конвертовано, за замовчуванням вказується десяткова система числення.


  1.  Вказівки користувачеві

Запускаємо програму. Спочатку на екран виводиться заставка(рис.2).

Рис. 2 – Заставка програми

Натискаємо клавішу Enter, і відкривається наступне  діалогове вікно (рис.3).

Рис.3– Запит на введення числа

Вводимо двійкове число, наприклад,   1000, і натискаємо <ENTER> і програма виводить  результат (рис.4).

Рис.4 – Результат виконання програми

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

Якщо натиснути <Enter>,то відбувається повторний запит на введення числа, якщо під час введення числа натиснути <q>, а за тим <Enter>, то відбудеться вихід із програми.

  1.  Оцінювання складності  реалізації програми

Видно, що алгоритм на Microsoft Visual Studio2010 короткий. Невеликий обсяг програмного тексту пояcнюється використанням бібліотечних функцій, яких дана мова має чимало. Використавши у даній програмі вібповідну бібліотечну функцію, ми спростили алгоритм програми.

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

Тому можна зробити висновок, що доцільніше для розв’язання даної задачі використати мову Microsoft Visual Studio2010


ВИСНОВКИ

Системи числення призначені для запису чисел цифровими знаками. Існує безліч способів запису. Кожна система числення забезпечує однозначність представлення чисел. Кожна комбінація цифр відповідає одному і тому ж числу.

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

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

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


Перелік посилань

1. Каган Б. М. Электронные вычислительные машины и системы. – Москва: Энергоатомиздат 1985. – 292 с.

2. Пєтух А.М., Войтко В.В. Прикладна теорія цифрових автоматів. – Вінниця: ВДТУ 2001. – 77с.

3. Выгородский М.Я. Справочник по елементарной математике – Москва: Наука – 1979. – 275с.

4. Пєтух А.М., Войтко В.В., Денисюк А.В. – Методичні вказівки до виконання контрольних робіт з дисципліни «ОФЕОМ та С» – Вінниця: ВДТУ 2003. – 77с.

5. Савельєв А.Я. Прикладная теория цифровых автоматов – Москва: Вища школа 1987. – 272с.

6. Темников Ф. Е., Афонин В. А., Дмитриев В. И. Теоретические основы информационной техники - Москва: Высшая школа 1979.– 328 c.

7. Фомин С.В. Системы счисления – Москва: Наука 1987. – 321с.


Додаток А. Лістинг програми на  Microsoft Visual Studio 2010

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Перевед

{

   class Program

   {

       static void Main(string[] args)

       {

           Information();

           bool exit = false;

           while (!exit)

           {

               Console.WriteLine("Вкажiть число в двiйковiй системi числення  або 'q' для виходу:");

               string zmin1 = Console.ReadLine();

               //Перевірка введених данних на коректність

               char[] perevirka = new char[zmin1.Length];

               perevirka = zmin1.ToCharArray();

               bool neVirno = false;

               foreach (char item in perevirka)

               {

                   if (item == 'q')

                   {

                       exit = true; break;

                   }

                   if (item != '0' && item != '1')

                   {

                       neVirno = true;

                   }

               }

               if (exit)

               {

                   break;

               }

               else

               {

                   if (neVirno)

                   {

                       Console.WriteLine("Введiть коректнi данi!!!");

                   }

                   else

                   {

                       string rez = Convert.ToString(Convert.ToInt32(zmin1, 2), 10);

                       Console.WriteLine("Число {0} в десятковій системi числення дорiвнює: {1}", zmin1, rez);

                   }

                   Console.ReadKey();

               }

           }

       }

       public static void Information()

       {

           Console.WriteLine("\n\n\t\t\t Курсова робота ");

           Console.WriteLine("\tНа тему:\"Переведення чисел з однiєi системи числення в iншу\"");

           Console.WriteLine("");

           Console.WriteLine("\n\n\n\n\n\n\n\n\t\t\t\t Виконав студент групи 1КН-мс11 - Скобченко Iгор");

           Console.WriteLine("\n\n\n\n\n\n\n\n\n\n\t\t\t Для початку роботи натиснiть 'Enter'");

           Console.ReadLine();

           Console.Clear();

       }

   }

}

 


Додаток Б. Блок-схема реалізації на  Microsoft Visual Studio 2010


Початок

Information()

Натиснення кнопки <Enter>

Так

Якщо <q>

Ні

Ні

Так

Введiть коректнi данi!!!

Число zmin1 в десятковій системi числення дорiвнює zmin1 rez

Натиснення кнопки <Enter>

Кінець

Якщо перевірка

Введення числа


 

А также другие работы, которые могут Вас заинтересовать

58893. Подорож до країни Доякорупо 46.5 KB
  Хто її населяє мешканці країни словники довідники енциклопедії Ви уже стикались у своєму шкільному житті з важкими питаннями: як правильно написати слово вимовити його що означає те чи інше слово як перекласти слово на іншу мову.
58894. Роль Поліанни в житті жителів міста Белдінгсвіля 56.5 KB
  Мета. Розширювати і доповнювати знання учнів про творчість зарубіжних письменників, активізувати читацьку пам’ять, формувати в учнів уміння робити висновки і висловлювати судження на основі прочитаного і посилатися під час відповіді на текст книжки...
58895. Управление персоналом как инструмент повышения эффективности трудовой деятельности в организационной среде медицинской компании 547 KB
  Обращение к проблематике эффективности кадрового менеджмента большого числа исследователей и в широких массах общественности породило интерес к темам управления деловой карьерой, профессионального роста и развития человека внутри организации...
58898. Океани Землі 49.5 KB
  Мета: продовжувати формувати уявлення про поверхню Землі, її зображення на карті, уміння читати карту і працювати з нею, сформувати уявлення про океани Землі; розвивати пізнавальний інтерес, висвітлити значення океанів та використання їх багатств людиною...
58899. Управление карьерой молодых специалистов на Красноярской дистанции электроснабжения 604.5 KB
  Изучить научную литературу отечественных и зарубежных авторов по проблемам управления карьерой молодых специалистов; дать общую характеристику изучаемому объекту, проследить его основные производственно-финансовые показатели; проанализировать состояние работы по управлению карьерой молодых специалистов на Красноярской дистанции электроснабжения...
58900. Зона мішаних лісів на території України 90.5 KB
  Хто здогадався чому на нас сипнув такий сніжок Це тема уроку. Щоб ви хотіли дізнатися про зону мішаних лісів Чи потрібно нам вивчати цю тему Дівчинка співає строфу пісні. А тепер детальніше зупинимось на зоні мішаних лісів.
58901. Закріплення знань про прислівник 38 KB
  Робота в групах на картках Визначити спосіб творення прислівників: забагато нещиро понашому рановранці заново Смачнесенько Отже прислівники утворюються за допомогою префіксального...