Довідник:одиниці вимірювання, система числення, час у різних країнах, Детальна інформація

Довідник:одиниці вимірювання, система числення, час у різних країнах
Тип документу: Курсова
Сторінок: 23
Предмет: Комп`ютерні науки
Автор: Омельчук Саша
Розмір: 120.4
Скачувань: 1754
Як же на практиці здійснюється переклад з однієї системи числення в іншу? Спробуємо розібратися.

Припустимо нам потрібно перекласти число 567 десятеричної системи в двійкову систему. Робиться це в такий спосіб: відшукується максимальний степінь двійки, щоб два в цьому ступені було менше або дорівнювало вихідному числу. У нашому випадку це 9, тому що 2^9=512, а 2^10=1024 що більше нашого початкового числа. У такий спосіб ми одержали число розрядів результату. Воно дорівнює 9+1=10.

Значить результат буде мати вид 1ххххххххх, де замість х може стояти 1 або 0. Знайдемо другу цифру результату. Піднесемо двійку до степеня 9 і віднімемо з вихідного числа: 567-2^9=55. Потім порівнюємо з числом 2^8=256. Тому що 55 менше 256 те дев'ятий розряд буде нулем, тобто результат уже прийме вид 10хххххххх.

Роздивимося восьмий розряд: 2^7=128 > 55, значить і восьмий розряд буде нулем. Так як 2^6=64 то сьомий розряд дорівнює нулю. У такий спосіб ми одержали чотири старших розряди і число прийме вид 1000хххххх. Обчисляємо 2^5=32 і бачимо, що 32 < 55, значить шостий розряд дорівнює 1 (результат 10001ххххх), залишок 55-32=23.2^4=16 < 23 - п'ятий розряд 1 => 100011хххх. Залишок 23-16=7.2^3=8 > 7 => 1000110ххх. 2^2=4 < 7 => 10001101хх, залишок 3.2^1=2 < 3 => 100011011х, залишок 1.2^0=1 = 1 => 1000110111. Ми одержали кінцевий результат.

Тепер спробуємо перекласти теж число 567, але вже в шістнадцяткову систему. Підхід приблизно такий же. Визначимо максимальний розряд. Так як. 16^2=256 < 567, а 16^3=4096 > 567, то максимальний розряд 2+1=3. Визначимо число, що буде стояти в третьому розряді. Шукається максимальний множник у межах від 1 до 15, щоб поточний степінь шістнадцятьох помноженого на цей множник був менше або рівнявся вихідному числу (а надалі - залишку). У нашому прикладі цей множник 2, тому що 256*2=512 < 567, а 256*3=768 > 567. Значить старший розряд нашого результату буде дорівнює 2, і результат прийме вид 2хх, де замість х можуть стояти будь-які цифри або букви з нижче перерахованих: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. Обчисляємо залишок: 567-2*16^2=55. Визначимо що буде стояти в другому розряді. Тому що 3*16^1=48 < 55, а 4*16^1=64 > 55, то в другому розряді буде стояти цифра 3. Залишок=55-3*16^1=7. Визначаємо перший розряд: тому що 16^0=1 то цифра першого розряду дорівнює залишку, тобто 7. У такий спосіб ми одержали число 237, але вже в шістнадцятковій системі числення.

Операція перекладу з десяткової системи виглядає набагато простіше. Роздивимося її на прикладі перекладу із шстнадцяткової системи в десяткову.

Припустимо нам потрібно перекласти число 4A3F у десятеричну систему. Беремо старший (4-ий) розряд і будуємо 16 в степені 4-1=3, одержуємо 16^3=4096. Отриманий результат множимо на значення четвертого розряду, тобто 4. Утворюється 4096*4=16384. Цей результат ми заносимо в суму. Переходимо до такого розряду: 16^2=256. 256 потрібно умножити на значення третього розряду тобто A. Як відомо в шістнадцяткові системі числення букви від A до F символізують числа від 10 до 15 ( A=10, B=11, C=12, D=13, E=14, F=15).

Помноживши 256 на 10 одержимо 2560 і цей результат добавляємо до суми, у якій в нас поки було 16384. У сумі в нас утворилося 18944. Переходимо до другого розряду: 3*16^1=48, додавши це в суму одержимо 18992. І останній розряд: 15*16^0=15. Кінцева сума дорівнює 19007. Ми одержали результат у десятеричній системі числення.

Методологічний підхід.

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

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

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

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

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

3.2 Теоретична основа переведення одиниць вимірювання.

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

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

3.3 Переведення часу.

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

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

Висновки

Виконуючи дану курсову роботу я краще навчився працювати в середовищі Borland Delphi 7, а також добре засвоїв цю мову програмування на практиці.



^„

F

n

 

c

¤

1/4

The online video editor trusted by teams to make professional video in minutes