- •1. Переведення чисел із однієї позиційної системи числення в іншу
- •1.1. Алгоритм безпосередньої заміни
- •2.2. Переведення цілих чисел з системи числення з основою q в систему числення p
- •2.3. Переведення дробових чисел
- •2.4. Точність переведення дробових чисел з системи числення з основою q в систему числення p
- •2.5. Переведення чисел із однієї системи числення в іншу у випадку
- •2.6.1. Переведення чисел у симетричні і кососиметричні системи
- •2.6.2. Переведення чисел із симетричних і кососиметричних
- •2.6.3. Переведення чисел у неканонічну двійкову систему
- •2.6.4. Переведення з неканонічної двійкової системи у канонічну
- •Рекомендується виконати домашнє завдання 10.
- •2.7. Системи числення з від’ємними основами
- •2.7.1. Переведення цілих десяткових чисел у мінус-двійкову
- •2.7.2. Переведення дробових десяткових чисел у мінус-двійкову
- •2.7.3. Переведення змішаних дробових десяткових чисел у
- •2.8. Переведення двійкових чисел у мінус-двійкову систему
- •2.8.1. Переведення додатних двійкових чисел у мінус-двійкову
- •2.8.2. Переведення від’ємних двійкових чисел у мінус-двійкову
- •2.8.3. Перехід від додатного числа, заданого в мінус-двійковій системі числення до від’ємного і навпаки
- •2.8.4. Переведення чисел з мінус-двійкової системи числення
- •2.9. Переведення чисел з десяткової системи числення в сзк з використанням властивостей залишків
- •2.10. Метод ортогональних базисів переведення чисел з сзк
- •Рекомендується виконати домашнє завдання 15.
- •2.11. Переведення чисел з сзк в десяткову систему числення
- •2.12. Питання для самоконтролю
- •2.13. Завдання для практичної роботи
- •2.14. Завдання для самостійної роботи
- •Додатки
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) здійснюється реалізація алгоритму множення.