- •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.7.1. Переведення цілих десяткових чисел у мінус-двійкову
систему числення
Для переведення цілих десяткових чисел у мінус-двійкову систему числення можна застосувати традиційний метод ділення на основу числення , але з певною корекцією. Зокрема, при використанні метода послідовного ділення на основу нової системи усі залишки на кожному кроці повинні бути додатними числами, які не перевищують абсолютного значення нової основи; у іншому випадку потрібна корекція – додавання 1 до поточно одержуваної частки. Розглянемо цей алгоритм більш детально на прикладах.
Приклад 2.18. Перевести десяткові числа , і в мінус-двійкову систему числення.
Розв’язання. Виконуючи ділення з остачею на основу , та вносячи корекцію у випадку від’ємної остачі додаванням 1 до частки, дістанемо:
21=-10×(-2)+1 → а0=1, 23=-11×(-2)+1, → а0=1,
-10= 5×(-2)+0 → а1=0, -11= 5×(-2) -1, потрібна корекція
5= -2×(-2)+1 → а2=1, -11= 6×(-2)+1, → а1=1,
-2= 1×(-2)+0 → а3=0, 6= -3×(-2)+0, → а2=0,
1= 0×(-2)+1 → а4=1. -3= 1×(-2) -1, потрібна корекція
А-2=10101 -3= 2×(-2)+1, → а3=1,
2= -1×(-2)+0, → а4=0,
-1= 0×(-2) -1, потрібна корекція
-1= 1×(-2)+1, → а5=1,
1= 0×(-2)+1, → а6=1.
В-2=1101011
-21=10×(-2)-1 потрібна корекція
-21=11×(-2)+1 → а0=1,
11= -5×(-2)+1 → а1=1,
-5= 2×(-2)-1, потрібна корекція
-5= 3×(-2)+1 → а2=1,
3= -1×(-2)+1 → а3=1,
-1= 0×(-2)-1, потрібна корекція
-1= 1×(-2)+1 → а4=1,
1= 0×(-2)+1 → а5=1,
С-2=111111
На лістингу 13 наведено програму, реалізовану засобами пакету Mathcad для переведення цілих десяткових чисел в мінус-двійкову систему.
2.7.2. Переведення дробових десяткових чисел у мінус-двійкову
систему числення
Для переведення правильних десяткових дробів у мінус-двійкову систему числення можна застосувати традиційний метод множення на основу числення , але, як і у випадку цілих чисел, з певною корекцією. При цьому поточні цілі частини дробів також повинні бути додатними числами, значення яких менші за модуль нової основи. Крім того, при переведенні правильного дробу (або дробової частини змішаного дробу) необхідно, щоб дріб на кожному кроці задовольняв умовам:
при
або
при , (2.11)
де Х – десятковий дріб, який переводиться в систему з основою p.
Якщо обмеження (2.11) не виконуються, то дріб потрібно перетворити наступним чином:
Якщо число знаходиться в діапазоні , то його перетворюють за формулою звідки , де число уже задовольняє умовам (2.11). Після цього потрібно покласти (ціла частина шуканого числа), а наступні (дробові) розряди знаходяться шляхом перетворення числа за алгоритмом множення з корекцією, якщо вона потрібна.
Якщо число знаходиться в діапазоні , то його перетворюють за формулою звідки , де число уже задовольняє умовам (2.11). Після цього потрібно покласти: , . Цими розрядами представляється в новій системі числення ціле число -1 (-1=-2+1→ 11). Наступні (дробові) розряди знаходяться перетворенням числа за алгоритмом множення з корекцією, якщо вона потрібна..
Приклад 2.19. Перевести десятковий дріб в мінус-двійкову систему числення.
Розв’язання. Оскільки вихідний дріб не задовольняє умову (2.11), то потрібна початкова корекція . Тоді:
0.625 → a0=1, -0.375
× -2
0.750 умова (2.11) не виконується
a-1=1, -0.250
× -2
0.500 умова (2.11) не виконується
a-2=1, -0.500
× -2
a-3=1, 0.000 умова (2.11) виконується.
Оскільки дробова частина дорівнює нулю, то процес закінчено. Таким чином, 0.62510=1.111-2.
Приклад 2.20. Перевести десятковий дріб в мінус-двійкову систему числення.
Розв’язання. Оскільки вихідний дріб задовольняє умову (2.11), то початкова корекція не потрібна. Тоді:
-0.625 → a0=0, -0.625 умова (2.11) виконується
× -2
a-1=1, 0.250 умова (2.11) виконується
× -2
a-2=0, -0.500 умова (2.11) виконується
× -2
a-3=1, 0.000 умова (2.11) виконується.
Частка дорівнює нулю, процес закінчено. Таким чином, -0.62510=0.101-2.
Приклад 2.21. Перевести десятковий дріб в мінус-двійкову систему числення.
Розв’язання. Оскільки вихідний дріб не задовольняє умову (2.11), причому , то потрібна початкова корекція . Тоді:
-0.75 → a1=1 умова (2.11) не виконується
a0=1, 0.25
× -2
a-1=0, - 0.50 умова (2.11) виконується
× -2
a-2=1, 0.00 умова (2.11) виконується
Остання частка дорівнює нулю, процес закінчено. Таким чином, -.7510= =11.01-2.
На лістингу 14 наведено програму, реалізовану засобами пакету Mathcad, для переведення дробових десяткових чисел в мінус-двійкову систему.