вісімковою системами числення
Недолік двійкової СЧ – незручність запису довгих чисел – компенсується широким запровадженням шістнадцяткової та вісімкової систем для сполучення між пристроями цифрової техніки. Саме ці СЧ вибрано тому, що між ними й двійковою системою найлегше виконати перетворення чисел.
Взагалі, якщо основи двох систем співвідносяться як c2=c1k (k – ціле число), то для перетворення Xc1®Xc2 (чисел від системи з основою c1 до системи з основою c2) досить розбити вихідне число Xc1 на групи з k цифр відносно коми та замінити кожну групу на цифру системи з основою c2. Так, для перетворень X2®X16, X2®X8 (приклади на рис. 1.1) двійкове число розбиваємо відносно коми ліворуч та праворуч (зазначено стрілками вгорі) відповідно по чотири (тетради) і три (тріади) розряди, додаємо в крайніх групах, за необхідністю, незначущі нулі та замінюємо утворені тетради й тріади цифрами відпо-відно шістнадцяткової і вісімкової СЧ. І, навпаки, для зворотного перетворення X16®X2, X8®X2 кожну цифру числа замінюємо відповідно тетрадою або тріадою двійкових цифр.
1.1.3. Перетворення до десяткової системи числення
Часто доводиться перетворювати числа з будь-якої СЧ до звичної десяткової системи. Універсальним для цього є метод за формулою полінома (1.2). Для СЧ із великими основами, наприклад, c=16 (рис. 1.2,а), можна скористатися таблицями степенів та мікрокалькулятором, а для двійкової системи досить підсумувати вагові коефіцієнти (на рис. 1.2,б розташовані вгорі), що відповідають одиничним розрядам двійкового числа.
Якщо у виразі (1.2) поступово виносити за дужки основу в першому степені, одержимо модифіковану формулу, в якій менше операцій множення та яку легше запрограмувати. Обчислення за нею (алгоритм Горнера) розглянемо на прикладі (рис. 1.2,в). Старший розряд числа (B) множимо на основу системи (c=16), до добутку додаємо наступний розряд (A) і суму (186) знов множимо на основу; продовжуючи цей ланцюжок, під кінець до попереднього обутку додаємо останній розряд (0) цілої частини вихідного числа й дістаємо, таким чином, цілу частину десяткового числа (2976). Перетворення дробової частини виконується аналогічно, але в протилежному напрямку. Молодший розряд дробової частини (F) ділимо на основу системи (або множимо на 1/c=0,0625), до результату додаємо наступний ліворуч розряд (8) і суму (8,9375) знов ділимо на основу. Після додавання останнього (першого після коми) розряду (0) також виконуємо ділення і дістаємо дробову частину числа (0,0349...). У підсумку маємо BA0,08F16 »2976,034910.
Перетворення до десяткової СЧ за алгоритмом Горнера можна робити і з двійкової системи, проте для довгих чисел воно коротше за схемою X2 ® X16 ® X10 (рис. 1.2,г).
1.1.4. Перетворення від десяткової до інших систем числення
Для зображення чисел і іншої інформації в цифрових пристроях часто необхідно перетворювати десяткові числа до СЧ з будь-якою основою c. Універсальний алгоритм такого перетворення розглянемо на прикладі Х10 ® ®Х16 (рис. 1.3,а).
Цілу частину вихідного числа (2976) і кожну наступну частку (186) ділять послідовно на основу нової системи (c=16) до отримання неподільної частки (11). Записуючи останню частку (11) і залишки від ділення (10; 0) як цифри нової системи (B; A; 0) у зворотному порядку їх здобуття, дістають цілу
частину нового числа (BA016). Дробову частину вихідного числа (0,035) і дробову частину кожного наступного добутку (0,56; 0,96; ...) тепер множать послідовно на ту ж саму основу (16) до отримання нуля в дробовій частині чергового добутку або потрібної точності (кількості розрядів після коми). Цілі частини добутків від кожного множення (0; 8; 15; ...), записані як цифри нової СЧ (0; 8; F) у прямому порядку їх одержання, складають дробову частину нового числа (0,08F...16). Таким чином, маємо 2976,03510 »BA0,08F16.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.