Курсовая работа: Програма переводу з однієї системи числення у іншу
Кількість цифр, використовуваних для зображення числа в позиційній системі числення, називається підставою системи.
У добре нам відомій з дитинства десятковій позиційній системі числення для запису будь-якого числа використовуються десять цифр (підстава системи 10) причому кожна цифра в числі несе подвійну інформацію: по-перше, своє власне значення-2;3;4...., а по-друге, місце яких вона займає в записі числа.
Розглянемо приклад числа: 1579320.
Занумеруємо всі розряди справа наліво, причому звичний нам розряд одиниць будемо вважати нульовим; тоді розряд десятків буде першим, сотень другим, тисяч третім і так далі. Така нумерація дуже природна, оскільки одиниці – це 10 у нульовому ступені, десятки – 10 у першої, сотні – 10 у другий і т.д., тобто розташування тієї чи іншої цифри в записі числа є не що інше, як пряма вказівка, якою ступенем 10 його можна замінити. А саме значення цифри показує, скільки разів треба взяти 10 у заданому ступені. Таким чином, остаточно наше число запишеться в наступному виді: 1*106+5*105+7*104+9*103+3*102+2*101+0*100 .
У загальному випадку запис будь-якого змішаного числа в системі числення з основою p буде являти собою ряд виду:
(1.1)
Послідовність цифр числа‚ розміщених справа від а0 називається дробовою частиною числа‚ послідовність - цілою частиною числа.
В ЕОМ та при підготовці задач для розв’язування на них крім десяткової системи числення застосовуються й інші - двійкова‚ вісімкова та шістнадцяткова.
Розділ 2. Методи та засоби розв'язку задачі
Задачу переводу з однієї системи числення (з основою p ) в іншу систему (з основою q ) можна розглядати у двох варіантах (випадках).
Варіант 1 . Найбільш простий випадок - перевід з системи з основою p в систему з основою q (і навпаки)‚ якщо має місце співвідношення (k - ціле додатне число).
У цьому випадку перевід з системи з основою p в систему з основою q ( ) здійснюють порозрядно‚ замінюючи кожну p - у цифру рівним їй k - розрядним числом‚ записаним в системі з основою числення q .
Зворотний перевід ( ) здійснюють таким чином. Рухаючись від коми вправо і вліво‚ розбивають число‚ записане в системі числення з основою q на групи по k цифр. Якщо при цьому найлівіша або сама найправіша група виявиться неповною‚ то до неї дописують відповідно зліва чи справа стільки цифр‚ щоб кожна з них містила k цифр. Після цього кожну групу q -вих цифр замінюють однією p -овою цифрою‚ котра дорівнює числу‚ позначеному цією групою q -вих цифр.
Приклад 1 . Системи числення з основою‚ кратною 2:
а) вісімкове число 273‚54 переводиться у двійкову систему (8 = 23 ) так:
273‚548 = (010)(111)(011)‚(101)(100)=10111011‚10112 ;
б) двійкове число 11011‚0011 переводиться у вісімкову систему числення так:
1011‚00112 = 11(011)‚(001)1 = (011)(011)‚(001)(100) = 33‚148 ;
в) шістнадцяткове число A5,B1E переводиться в двійкову систему числення (16 = 24 ) так:
A5,B1E16 = (1010)(0101),(1011)(0001)(1110) = 10100101,101100011112
Випадок 2 . Перевід з системи з основою p в систему з основою q ‚ якщо має місце співвідношення (k - ціле додатне число)‚ здійснюється окремо для цілої та дробової частин.
Перевід цілої частини числа. Число q записують в p -мі системі числення. Ділять в p -вій системі цілу частину числа на q і отримують остачу‚ яка є останньою цифрою шуканого числа. Отриману частку знову ділять на q і отримують остачу‚ яка є передостанньою цифрою шуканого числа і т.д. процес продовжують до тих пір‚ поки остача не стане меншою ‚ ніж число q . Остання остача буде першою (старшою) цифрою числа.
Перевід дробової частини. Число q записують в p -мі системі числення. Дріб множимо в p -вій системі на q . Ціла частина добутку дорівнює першій цифрі запису числа. Дробову частину добутку знову множимо на q . Ціла частина добутку дорівнює наступній цифрі запису числа в системі числення з основою q . Процес продовжують до тих пір поки не отримаємо добуток у вигляді цілого числа або не отримаємо потрібної кількості цифр шуканого дробу.
Приклад 2 . Переведемо число 191‚687510 у вісімкову систему числення. Спочатку переводимо цілу частину:
191 | 8 | |
16 | 23 | 8 |
31 | 16 | 2 |
24 | 7 | |
7 |
Таким чином‚ 19110 = 2778 . Тепер переводимо двійкову частину:
0 | 6875 |
8 | |
5 | 5000 |
8 | |
4 | 0000 |
Таким чином‚ 0,687510 = 0,548 . Остаточно‚ отримуємо 191,687510 = 277‚548 .
Як бачимо‚ алгоритми переводу з однієї системи числення в іншу є надзвичайно простими‚ що дає змогу доволі просто здійснити їх реалізацію на ПК.
Розділ 3. Практична реалізація розв'язку задачі
Практична реалізація задачі переводу чисел з однієї системи числення у іншу здійснена для напрямків: десяткова система числення Þ двійкова‚ вісімкова та шістнядцяткова системи та навпаки. Для розв’язку даної задачі розроблено модуль calc.tpu та програму kurs2.pas (текст представлено в додатку А).
В модулі реалізовано ряд процедур.
Процедура Hide_cursor. Робить курсор невидимим. Використовує процедуру Set_cursor та стандартну процедуру Intr .