- •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.3. Переведення дробових чисел
2.3.1. Переведення з системи числення q=10 в систему p<q
Теоретичною основою даного методу є представлення відомого дробового числа , заданого у системі числення q, у вигляді
. (2.4)
Записавши цей вираз за схемою Горнера, одержимо
. (2.5)
Якщо праву частину (2.5) помножити на основу р, то отримаємо неправильний дріб, в цілій частині якого буде цифра . Нова дробова частина набуде вигляду . Помноживши одержану дробову частину на р, знайдемо другу цифру . Повторивши процес множення раз, одержимо останню цифру шуканого число . Операція множення виконується в системі числення з основою q, в якій представлене вихідне число.
Приклад 2.4. Перевести десятковий дріб Bd=0.671875 в двійкову систему числення.
Розв’язання. У даному випадку q=10, p=2. На лістингу 8 наведено покрокову роботу алгоритму множення, реалізовану засобами пакету Mathcad. Робота даного алгоритму починається із задання числа Bd, початкового значення лічильника і=0 та початкового значення шуканого числа Bр=0. Далі m+1 раз виконується послідовність операцій:
, , , ,
за допомогою якої виділяється ціла частина числа, змінюється значення лічильника, формується черговий розряд числа та обчислюється дробова частина нового числа.
Це ж саме завдання можна виконати програмними засобами пакету Mathcad. Програму реалізації даного алгоритму наведено на лістингу 9. За допомогою програми Per_Mno_d_10_p(B,p,m) здійснюється перетворення числа у вектор, після чого формується шукане число.
2.3.2. Переведення з системи числення p в систему q=10 (р<q)
У даному випадку переведення правильних дробів з m цифрами після коми здійснюється шляхом ділення цифри молодшого розряду на основу p, після чого додається цифра наступного розряду заданого числа і одержана сума ділиться на основу p. Таку операцію потрібно повторити ще раз, використовуючи, як ділене на кожному кроці суму, одержану на попередньому кроці. Обчислення при цьому виконуються в системі числення з основою q.
Приклад 2.5. Перевести двійкове число В2=0,10011 в десяткову систему за допомогою вищеописаного алгоритму.
Розв’язання. У даному випадку q=2, p=10. На лістингу 10 наведена покрокова реалізація роботи алгоритму, виконана засобами пакету Mathcad. Виконання даного алгоритму починається із задання числа B2 у вигляді вектора Bv, початкової суми S=0 та обчислення кількості компонент вектора m:=last(Bv). Далі m-1 раз виконується послідовність операцій , передбачених вищеописаним алгоритмом.
Це ж саме завдання можна виконати програмними засобами пакету Mathcad. Програми реалізації даного алгоритму наведено на лістингу 10. За допомогою програми Dch_vec(B,m) здійснюється перетворення дробового числа у вектор, а за допомогою програми PerD_mno(v) здійснюється реалізація алгоритму множення. На цьому ж лістингу проілюстровано переведення дробових чисел В2=0.101011 і В8=0.53, заданих, відповідно, у двійковій і вісімковій системах числення, в десяткову систему.
Рекомендується виконати домашні завдання 1, 2, 3, 4, 7, 6, 7, 8.