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

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, для переведення дробових десяткових чисел в мінус-двійкову систему.