Перетворення чисел


Частіше за все у цифровій техніці приходиться переводити десяткові числа у двійкові та навпаки, це можна зробити за допомогою універсального алгоритму, що використовується окремо для цілої та дробової частини. Переведення цілої частини десяткового числа у двійкову систему полягає у записі в оберненому порядку залишків (0 або 1), що одержуються під час ділення початкового числа і кожного наступного дільника на два. Дробова частина отримується з цілих частин (0 або 1) з її послідовним множенням на два. Таке множення продовжується доти, доки дробова частина перетвориться на нуль або отримується потрібна кількість знаків після розділової крапки. Це ілюструє приклад, наведений нижче.

 

Використовуючи вираз (2.1), можна подати результат перетворення у вигляді

(11001.1)2 = 1*24 + 1*23 + 0*22 + 0*21 + 1*20 + 1*2-1 = 16 + 8 + 1 + 0.5 - 25.5

Для переведення в двійкові числа вісімкового та шістнадцяткового чисел достатньо кожен розряд вісімкового числа представити трьома (тріадою) а шістнадцяткового - чотирма (тетрадою) двійковими розрядами. Наприклад:

(31.4 )8 = (011001.100)

( 19.8 )16=(00011001.1000)

Зворотнє переведення двійкового числа у вісімкове або шістнадцяткове виконується розбиттям його на блоки (тріади або тетради) вліво та вправо від розподільного символу. Недостатні розряди у крайньому лівому і правому блоках доповнюються нулями. Потім кожна тріада замінюється вісімковим, а кожна тетрада - шістнадцятковим числом. Вісімкове та шістнадцяткове подання двійкових чисел використовується для більш компактного запису.

 

 

Шістнадцяткова більш зручна для подання більшої одиниці інформації - байта, який дорівнює восьми бітам, для чого достатньо двозначного шістнадцяткового числа.

Для перетворення числа з будь-якої системи числення на десяткову достатньо обчислити значення відповідного поліному, підставивши до нього десяткове значення розрядів і основ системи числення. Обчислення зручно виконувати за схемою Горнера, що основана на представленні поліному (2.1) у вигляді

(...((аn-1 *h+аn-2)*h+аn-3)*h+.....+а1)*h+а0,

тобто цифра аn-1 старшого розряду числа, що переводиться, помножується на основу h початкової системи числення і результат додається до наступної цифри, потім процес повторюється до найменшого розряду. Наприклад: