Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦ_ 2 Переведення чисел.doc
Скачиваний:
6
Добавлен:
15.11.2019
Размер:
2.77 Mб
Скачать

2.2. Переведення цілих чисел з системи числення з основою q в систему числення p

10. Випадок . Теоретичною основою алгоритму переведення цілих чисел із системи числення з основою q в систему з основою p у випадку є подання відомого цілого числа , заданого у системі числення з основою q, у вигляді полінома

,

де р – нова система числення, – цифри шуканого числа.

Записавши цей вираз за схемою Горнера, одержимо

. (2.3)

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

Приклад 2.2. Нехай . Перевести задане число в системи числення з основами і за вищенаведеним алгоритмом "вручну". Результати переведення наведено в табл.1,2: , .

Таблиця 2.1 Таблиця 2.2

На лістингу 5 наведено Mathcad-програму для переведення цілих десяткових чисел із десяткової системи числення в систему числення з основою р методом ділення.

Зауваження. Наведена програма дає можливість переводити із десяткової системи числення в будь-яку позиційну однорідну систему числення, в тому числі і систему числення з основою , наприклад, в шістнадцяткову систему числення. Але, якщо одержувані цифри більші за 10, то правильно формується тільки векторна форма числа, а саме число легко записати в ручному режимі. На лістингу 5 наведено результати переведення десяткових чисел 67 і 91. Оскільки, результатом переведення числа 67 є шістнадцяткове число 43 (обидві цифри меші за 10), то воно переводиться правильно. При переведенні числа 91, одна із остач дорівнює 11 (шістнадцяткова цифра В), тому програмою правильно формується тільки векторна форма число, а саме число потрібно записати вручну А=5В замість А=61, яке видається програмою.

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

Приклад 2.3. Перевести двійкове число Х=10111001 в десяткову систему за допомогою вищеописаного алгоритму.

Розв’язання. На лістингу 6 наведена цифрову діаграму роботи алгоритму, одержану засобами пакету Mathcad. Реалізація даного алгоритму починається із задання числа А2 у вигляді вектора Аv та початкової суми S=0. Далі виконується послідовність операцій, передбачених вищеописаним алгоритмом.

Це ж саме завдання можна виконати програмними засобами пакету Mathcad. Програми реалізації даного алгоритму наведено на лістингу 7. За допомогою програми Cch_vec(A) здійснюється перетворення числа у вектор, а за допомогою програми PerC_mno(v) здійснюється реалізація алгоритму множення.