[Список тем] Страницы темы: [1] [2]


Перевод чисел из одной системы счисления в другую


Перевод чисел из десятичной системы счисления в двоичную


Для перевода десятичного числа в двоичную систему счисления отдельно выполним операции перевода для целой и дробной части.
Целая часть.
Осуществляем последовательное деление целой части на основание системы счисления (2) с записью остатков. Двоичное число считывается от последнего результата по остаткам (от последнего остатка к первому).
Пример. Целое десятичное число 87 переведем в двоичную систему счисления.



87(10)=1010111(2)

Для небольших чисел можно воспользоваться таблицей целых степеней числа 2.
  27 26 25 24 23 22 21 20 2-1 2-2 2-3 2-4
Вес разряда 128 64 32 16 8 4 2 1, 1/2 1/4 1/8 1/16
Ближайшую целую степень 2, не превышающую переводимую величину, исключаем из числа, ставим в старший разряд двоичного числа 1 и определяем остаток. 87 - 26 = 23.
Переходим к следующей степени 25 = 32. Эта величина больше остатка, значит во второй разряд двоичного числа надо поставить 0.
Следующая целая степень 24 = 16 содержится в остатке. Записываем в следующий разряд результата 1 и определяем новый остаток: 23-16 = 7.
23=8>7. Записываем в следующий разряд результата 0 и переходим к очередной степени.
22<7. Записываем в следующий разряд результата 1 и определяем новый остаток: 7-4 = 3.
21<3. Записываем в следующий разряд результата 1 и определяем остаток: 3-2 = 1. Это последний разряд числа.
Проверка. Просуммируем вес разрядов двоичного числа:
1*26+0*25+1*24+0*23 +1*22+1*21+1*20 = 64+16+4+2+1=87.
Дробная часть
Дробную часть десятичного числа будем последовательно умножать на 2, исключая из промежуточных результатов целую часть и записывая ее в разряды двоичного числа после запятой. Если точный ответ не получается за несколько шагов, т.е. получается бесконечная непериодическая последовательность, то вычисления проводятся до достижения требуемой точности результата (до определенного числа знаков после запятой).
Пример. Десятичные дроби 0,3125 и 0,7163 переведем в двоичную форму:

В первом случае получен точный результат: 0,0101(2) = 1/4+1/16 = 0,25 + 0,0625 = 0,3125. Во втором случае   вычисления проводились с точностью до семи знаков после запятой. Обратите внимание, что все получаемые разряды дробной части числа записываютя после запятой в том порядке, как они получены.


Перевод чисел из двоичной системы счисления в десятичную


Перевод двоичных чисел в десятичную систему счисления осуществляется при помощи таблицы целых степеней числа 2. Суммируем вес разрядов двоичного числа, в которых стоят 1. Там где в числе стоит 0, соответствующий вес разряда умножен на 0 и суммировать нечего.
Пример: 1100011,101(2) = 1*26+1*25+0*24+0*23+0*22+1*21+1*20,+1*(1/2)+1*(1/8) = 64+32+2+1,+ 5/8 = 99,625(10)
Аналогично из любой другой системы счисления в десятичную число можно перевести просуммировав вес его разрядов, умноженный на цифры числа Пример: 702,34(8) = 7*82+0*81+2*80,+3*(1/8)+4*(1/64) = 7*64+2,+ 3/8+4/64 = 448+2,+0,375+0,0625 = 450,4375(10)


Перевод чисел в кратных системах счисления


Основания восьмеричной и шестнадцатеричной систем счисления выражаются целой степенью двух (8=23, 16=24). Этим объясняется простота преобразования чисел, представленных в этих системах, в двоичную систему счисления и обратно. Каждая восьмиричная цифра для получения ее двоичного представления требует три двоичных разряда, а шестнадцатиричная - четыре.
Двоичная запись цифр различных систем счисления приведена в таблице:
p=10 p=8 p=16
0 0 0 000 0 0000
1 1 1 001 1 0001
2 10 2 010 2 0010
3 11 3 011 3 0011
4 100 4 100 4 0100
5 101 5 101 5 0101
6 110 6 110 6 0110
7 111 7 111 7 0111
8 1000     8 1000
9 1001     9 1001
        A 1010
        B 1011
        C 1100
        D 1101
        E 1110
        F 1111


Для перевода чисел из восьмеричной системы счисления в двоичную достаточно каждую цифру восьмеричного числа представить трехразрядным двоичным числом (триадой). Например,
762,358= 111 110 010, 011 1012
7 6 2 3 5

Перевод шестнадцатеричных чисел в двоичную систему счисления достигается представлением цифр шестнадцатеричного числа четырехразрядными двоичными числами (тетрадами). Например,
А7В, С716=1010 0111 1011, 1100 01112.
При обратном переводе чисел из двоичной системы в восьмеричную или шестнадцатеричную системы счисления необходимо разряды двоичного числа, отсчитывая их от запятой влево и вправо, разбить на группы по три разряда в случае перевода в восьмеричную систему или на группы по четыре разряда в случае перевода в шестнадцатеричную систему счисления. Неполные крайние группы дополняются нулями. Затем каждая двоичная группа представляется цифрой той системы счисления, в которую переводится число. Например,
001 111, 101 0102= 17,528;         0101 1100, 1101 01102 = 5С,D6;
Для перевода числа из шестнадцатиричной системы счисления в восмиричную надо записать двоичное представление числа, разбить двоичные разряды на триады вправо и влево от запятой, дополняя недостающие нули слева от целой части и справа от дробной, и прочесть восмиричное число соответствующее триадам.

Пример Число EF2С,1D переведем в восмиричную систему счисления.
Запишем двоичную форму числа, последовательно записав тетрадами его шестнадцатиричные цифры
EF2С,1D = 1110 1111 0010 1100, 0001 1101(2).
Сгруппируем двоичные разряды числа в триады вправо и влево от запятой
001 110 111 100 101 100, 000 111 010
Недостающие нули записаны перед целой частью и после дробной части. Восмиричное цисло получаем записывая последовательно восмиричные цифры соответсвующие двоичным триадам 167454,072(8).

Перевод восмиричного числа в шестнадцатиричную систему счисления осуществляется в обратном порядке: запись двоичной формы числа триадами, группировка двоичных разрядов в тетрады вправо и влево от запятой с дополнением нулями слева от целой части и справа от дробной, и считывание шестнадцатиричного результата в соответствии с тетрадами.

Пример. Число 563,41(8) переведем в шестнадцатиричную систему счисления.
Запишем двоичную форму числа, последовательно записав двоичными триадами его восмиричные цифры 563,41(8) = 101 110 011, 100 001(2). Сгруппируем двоичные разряды числа в тетрады вправо и влево от запятой     0001 0111 0011, 1000 0100  недостающие нули записаны перед целой частью и после дробной. Шестнадцатиричное цисло получаем записывая последовательно шестнадцатиричные цифры соответсвующие двоичным тетрадам   173,84(16).


[Список тем] [Вступление к этой теме] Страницы темы: [1] [2]