Программирование на Ассемблере
Для перевода числа из двоичной системы в десятичную нужно просто
сложить значения разрядов, содержащих 1. Значения разрядов можно получить
из следующей таблицы: номер разряда 7 6 5 4 3 2 1 0
значение 128 64 32 16 8 4 2 1 Для тренировки, попробуйте перевести число %110010 в десятичную систему
счисления (у Вас должно получиться число 50). Восьмеричная система.
Базой восьмеричной системы счисления является число 8. Разряды числа в
восьмеричной записи могут содержать цифры от 0 до 7. Таким образом,
десятичным эквивалентом восьмеричного числа 31 является 3*8^1 + 1*8^0 = 25. Шестнадцатеричная система.
Базовое число шестнадцатеричной системы - 16, а возможные цифры (символы)
в разрядах - от 0 до F. Так, символ A эквивалентен десятичному числу 10,
а символ F - числу 15. Шестнадцатеричные числа мы будем писать со знаком $
в начале. Двоичная и шестнадцатеричная системы счисления являются базовыми
в машинном программировании.
Шестнадцатеричное представление байта всегда содержит два разряда (две
позиции), диапазон 0-255 представляется диапазоном $00-$FF. Слово
представляется диапазоном $0000-$FFFF, а двойное слово - $00000000-
$FFFFFFFF.
Перевод двоичные чисел в шестнадцатеричные осуществляется по очень простой
схеме: исходное число разбивается на группы по четыре разряда. Каждой из
этих групп соответствует шестнадцатеричная цифра. Например:
двоичное число %110011101111
разбиение %1100 %1110 %1111
результат $C $E $F
таким образом %110011101111 = $CEF Обратный перевод осуществляется аналогично:
шестнадцатеричное $E30D
разбиение $Е $3 $0 $D
результат %1110 %0011 %0000 %1101
таким образом $E30D = %1110001100001101 Аналогичный метод используется для перевода двоичных чисел в восьмеричную
систему и наоборот, только в этом случае группы разбиения содержат по 3
разряда:
восьмеричное число 7531
разбиение 7 5 3 1
результат %111 %101 %011 %001
таким образом восьмеричное 7531 = %111101011001 Полученное двоичное число можно перевести в шестнадцатеричную систему:
двоичное число %111101011001
разбиение %1111 %0101 %1001
результат $F $5 $9
таким образом восьмеричное 7531 = $F59 Затем можно перевести полученное число в привычную десятичную систему по
следующей схеме:
шестнадцатеричное $F59
разбиение $F $5 $9
результат 15*16^2 + 5*16 + 9
таким образом $F59 = десятичному 3929 Несмотря на простоту этих преобразований, каждый раз проводить их вручную
весьма утомительно.
|