Перевод чисел в различных системах счисления. Для перевода числа из десятичной системы счисления в систему счисления с другим основанием поступают следующим образом: а) Для перевода целой части числа его делят нацело на основание системы, фиксируя остаток. Если неполное частное не равно нулю продолжают делить его нацело. Если равно нулю остатки записываются в обратном порядке. б) Для перевода дробной части числа ее умножают на основание системы счисления, фиксируя при этом целые части полученных произведений. Целые части в дальнейшем умножении не участвуют. производиться до получения 0 Умножение в дробной части произведения или до заданной точности вычисления. в) Ответ записывают в виде сложения переведенной целой и переведенной дробной части числа. Пример: перевод чисел из десятичной системы счисления в двоичную систему счисления. Перевести число 75,375 в двоичную систему счисления. а) переведем в двоичную систему целую часть - 75 75 : 2 = 37 ( 1 ) 37 : 2 = 18 ( 1 ) 18 : 2 = 9 ( 0 ) 9:2= 4(1) 4:2= 2(0) 2:2= 1(0) 1:2= 0(1) Закончив деление, запишем остатки в обратном порядке, и получим искомый результат: 75=10010112 б) переведем в двоичную систему дробную часть - 0,375 0,375 2 0,750 2 1,500 2 1,000 Выделенные числа запишем в естественном порядке и получим дробное число в двоичной системе счисления: 0,375 = 0,0112 в) получив целую и дробную части числа в двоичном виде (75=10010112 и 0,375 = 0,0112 ) можем сделать вывод: 75,375=75+0,375 = 10010112+0,0112=1001011,0112, значит 75,375=1001011,0112 Пример: перевод чисел из десятичной системы счисления в шестнадцатеричную систему счисления. Представить десятичное число 157,23 в шестнадцатеричной системе счисления. Целая часть числа равна 157, дробная - 0,23. а) переведем в двоичную систему целую часть - 157 157 : 16 = 9 (13 или D) 9 : 16 = 0 (9) Закончив деление, запишем остатки в обратном порядке, и получим искомый результат: 157=9D 16 а) переведем в двоичную систему дробную часть - 0,23. Результат умножения 0,23 на 16 равен 3,68. Целая часть этого числа равна 3, значит первый коэффициент дробной части равен 3. Дробная часть равна 0,68. Снова умножим ее на основание системы: 0,68*16=10,88. Целая часть равна 10 или в шестнадцатеричной системе А. Дробная часть равна 0,88, она опять умножается на 16 и так далее. Выпишем весь процесс: 0,23 * 16 = 3,68 ( 3 ) 0,68 * 16 = 10,88 ( А ) 0,88 * 16 = 14,08 ( Е ) 0,08 * 16 = 1,28 ( 1 ) 0,28 * 16 = 4,48 ( 4 ) 0,48 * 16 = 7,68 ( 7 ) 0,68 * 16 = 10,88 ( А ) 0,88 * 16 = 14,08 ( Е ) 0,08 * 16 = 1,28 ( 1 ) 0,28 * 16 = 4,48 ( 4 ) 0,48 * 16 = 7,68 ( 7 ) 0,68 * 16 = 10,88 ( А ) 0,88 * 16 = 14,08 ( Е ) Замечаем, что последовательность чисел 0,68; 0,88; 0,08; 0,28; 0,48 повторилась уже 2 раза и начинается в третий раз. Получается бесконечная шестнадцатеричная дробь в которой период (бесконечно повторяемая последовательность цифр) заключен в скобки: 157,23=9D,3(АЕ147)16 Для перевода числа в десятичную систему счисления из системы счисления с другим основанием каждый коэффициент переводимого числа умножается на основание системы в степени соответствующей этому коэффициенту и полученные результаты складываются. Пример: перевод чисел из двоичной системы счисления в десятичную систему счисления Перевести число 1001011,0112 в десятичную систему счисления 1001011,0112 = 1*26+0*25+0*24+1*23+0*22+1*21+1*20+0*2-1+1*2-2+1*2-3 =64+8+2+1+0,25+0,125=75,375 Двоичная система проста, так как использует две цифры, но громоздка. В десятичной хранить числа в памяти возможно, но сложен перевод из десятичной в двоичную и обратно и занимает много времени. Необходима система счисления компактнее двоичной, но с более простым переводом. 23 = 8 0, 1, 2, 3, 4, 5, 6, 7. Для перевода из двоичной системы счисления в восьмеричную необходимо разбить данное двоичное число вправо и влево от запятой на триады (три цифры) и представить соответствующим каждую восьмеричным кодом. триаду При невозможности разбиения на триады допускается добавление нулей слева в целой записи числа и справа в дробной части числа. Для обратного перевода каждую цифру восьмеричного числа представляют соответствующей триадой двоичного кода. Двоичная система Десятичная Восьмеричная счисления Шестнадцатеричная система система система счисления Триады Тетрады счисления счисления (0-7) (0-15) 0 000 0000 00 0 1 001 0001 01 1 2 010 0010 02 2 3 011 0011 03 3 4 100 0100 04 4 5 101 0101 05 5 6 110 0110 06 6 7 111 0111 07 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F 16 10000 20 10 Пример: перевод чисел из двоичной системы счисления в восьмеричную систему счисления. Переведем число 1001011,0112 в восьмеричную систему счисления. Разобьем данное число на триады, приписав слева недостающие нули: 001 001 011 , 011 1 1 3 , 3 и заменим каждую триаду соответствующим восьмеричным кодом (см. таблицу). Можем сделать вывод: 1001011,0112 = 113,38 Пример: перевод чисел из восьмеричной системы счисления в двоичную систему счисления. Переведем число 347,258 в двоичную систему счисления. Каждую цифру восьмеричного числа заменим соответствующей триадой (см. таблицу). 3 4 7 , 2 5 011 100 111 , 010 101 Запишем ответ, удалив нули слева в записи числа: 347,258 = 11100111,0101012 Восьмеричная система компактнее двоичной и с более простым переводом чисел, однако, современные требования к ЭВМ заставили создавать шестнадцатеричную систему счисления. 24 = 16 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Правило перевода из двоичной системы счисления в шестнадцатеричную: разбить двоичное число вправо и влево от запятой на тетрады (по 4 цифры) и представить каждую шестнадцатеричным тетраду кодом. соответствующим При невозможности разбиения на тетрады допускается добавление нулей слева в целой записи числа и справа в дробной части числа. Для обратного перевода каждую цифру шестнадцатеричного числа представляют тетрадой двоичного кода. Пример: перевод чисел из двоичной системы счисления в шестнадцатеричную систему счисления. Переведем число 1001011,0112 в шестнадцатеричную систему счисления. Разобьем данное число на тетрады, приписав слева в целой части, и справа в дробной части недостающие нули: 0100 1011, 0110 4 В , 6 и заменим каждую тетраду соответствующим шестнадцатеричным кодом (см. таблицу). Можем сделать вывод: 1001011,0112 = 4В,616 Пример: перевод чисел из шестнадцатеричной системы счисления в двоичную систему счисления. Переведем число А4F,C516 в двоичную систему счисления. Каждую цифру шестнадцатеричного числа заменим соответствующей тетрадой (см. таблицу). A 4 F , C 5 1010 0100 1111 , 1100 0101 Запишем ответ, удалив нули слева в записи числа: A4F,C516 = 101001001111,110001012 10 2 8 16 0 000 0 0 1 001 1 1 2 010 2 2 3 011 3 3 4 100 4 4 5 101 5 5 6 110 6 6 7 111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F