Перевод целого числа из десятичного счисления в другое
Перевод между основаниями, составляющими степень двойки
Перевод чисел из одной системы представления в другую
Перевод чисел, как целых, так и дробных, составляет важную часть машинной арифметики. Наиболее просто выполняются переводы между основаниями, составляющими степень двойки.
Для того, чтобы из восьмеричного счисления перевести число в двоичный код, необходимо каждую цифру этого числа представить триадой двоичных символов. Лишние нули в старших разрядах отбрасываются. Например:
1234,7778 = 001 010 011 100, 111 111 1112 = 1 010 011 100, 111 111 1112;
12345678 = 001 010 011 100 101 110 1112 = 1 010 011 100 101 110 1112;
123456,0078 = 001 010 011 100 101 110,000 000 1112 =
= 1 010 011 100 101 110, 000 000 1112.
Обратный перевод производится также просто: каждая триада двоичных цифр заменяется восьмеричной цифрой. Для правильного перевода число должно быть выровнено, т. е. число двоичных знаков должно быть кратно трем. Выравнивание производится простым дописыванием требуемого количества нулей перед старшим разрядом для целой части числа, за последним разрядом для дробной части. Например:
11001112 = 001 100 1112 = 1478;
11,10012 = 011, 100 1002 = 3,448;
110,01112 = 110, 011 1002 = 6,348.
При переводах между двоичным и шестнадцатеричным счислениями используются четверки двоичных чисел. При необходимости выравнивание выполняется до длины двоичного числа, кратной четырем.
1234,АВ7716 = 0001 0010 0011 0100,1010 1011 0111 01112 =
= 1 0010 0011 0100,1010 1011 0111 01112;
СE456716= 1100 1110 0100 0101 0110 01112;
0,1234АА16 = 0,0001 0010 0011 0100 1010 10102;
11001112 = 0110 01112 = 6716;
110,01110012 = 0110, 0111 00102 = 6,7216.
При переходе из восьмеричного счисления в шестнадцатеричное счисление и обратно используется вспомогательный, двоичный код числа, Например:
12345678 = 001 010 011 100 101 110 1112 = 0101 0011 1001 0111 01112 = =5397716;
0,120348 = 0,001 010 000 011 1002 = 0,0010 1000 0011 10002 = 0,283816;
120,348 = 001 010 000, 011 1002 = 0101 0000,0111 00002 = 50,716;
1234,АВ7716 = 0001 0010 0011 0100, 1010 1011 0111 01112 =
= 001 001 000 110 100,101 010 110 111 011 1002 = 11064,5267348;
СЕ456716 = 1100 1110 0100 0101 0110 01112 =
= 110 011 100 100 010 101 100 1112 =634425478;
0,1234АА16 = 0, 0001 0010 0011 0100 1010 10102 =
= 0,000 100 100 011 010 010 101 0102= 0,044322528.
Для того чтобы перевести десятичное число в систему счисления с основанием n надо:
1. Последовательно делить заданное число и получаемые целые части на новое основание счисления до тех пор, пока целая часть не станет
меньше нового основания счисления.
2. Полученные остатки от деления, представленные цифрами изнового
счисления, записать в виде числа, начиная с последней целой части.
Перевод в двоичную систему счисления:
-146 | |||||||
-72 | |||||||
-36 | |||||||
-18 | |||||||
-8 | |||||||
-4 | |||||||
-2 | |||||||
А2 = 100100112 | |||||||
Перевод в восьмеричную систему счисления:
-144 | ||
-16 | ||
А8 = 2238 |
Перевод в шестнадцатеричную систему счисления:
-144 | |
А16 = 9316 |