ПРАКТИКУМ ПО ОМПТ. Практикум по основам микропроцессорной техники Саранск 2003 удк 004. 384 378. 146147
Скачать 0.74 Mb.
|
1.2. Перевод чисел из одной системы счисления в другуюОснования восьмеричной и шестнадцатеричной систем счисления выражаются целой степенью двух (8 = 23; 16 = 24). Этим объясняется простота преобразования чисел между этими системами и двоичной системой счисления. Для перевода чисел из восьмеричной системы счисления в двоичную достаточно каждую цифру восьмеричного числа заменить соответствующим 3-разрядным двоичным числом. Например, 735,24Q = 111 011 101, 010 100B ---- ---- ---- ---- ---- 7 3 5 2 4 Перевод в двоичную систему счисления шестнадцатеричных чисел достигается заменой цифр шестнадцатеричного представления 4-разрядными двоичными числами. Например, АЗВ,С9H = 1010 0011 1011, 1100 1001B ------ ------ ------ ------ ------ А 3 В С 9 При обратном переводе чисел из двоичной системы в восьмеричную или шестнадцатеричную систему счисления необходимо разряды двоичного числа, отсчитывая их от запятой влево и вправо, разбить на группы по три разряда (в случае перевода в восьмеричную систему) или на группы по четыре разряда (в случае перевода в шестнадцатеричную систему счисления). Неполные крайние группы дополняются до полных нулями. Затем каждая двоичная группа представляется цифрой той системы счисления, в которую переводится число. Например, 001 111, 101 010B = 17,52Q ---- ---- ---- ---- 1 7 5 2 0101 1100, 1011 0110B = 5С,В6H ------ ------- ------ ------ 5 С В 6 Восьмеричная и шестнадцатеричная системы счисления при работе с цифровой вычислительной техникой используются для компактного представления двоичной информации – адресов, данных, команд и т.д. Какая именно применяется система счисления, зависит от традиций, сложившихся при работе с теми или иными средствами вычислительной техники. Так, для микропроцессора КР580ВМ80А обычно используется шестнадцатеричная система счисления. Сложнее выполняется перевод чисел между десятичной и двоичной, восьмеричной или шестнадцатеричной системами счисления. Перевод из любой системы счисления в десятичную может быть выполнен, как это было показано в разделе “Системы счисления”, путем суммирования цифр в записи числа, умноженных на весовые коэффициенты соответствующих разрядов. Перевод из десятичной системы счисления в систему с другим основанием может быть выполнен с помощью универсального метода деления-умножения. Суть метода состоит в последовательном делении целой части числа на основание той системы счисления, в которую осуществляется перевод, до тех пор, пока не получится остаток, меньший основания. Дробная часть переводится путем последовательного умножения ее на основание той системы счисления, в которую осуществляется перевод, до тех пор, пока не получится целое число, или же будет достигнута заданная точность. Рассмотрим в качестве примера перевод числа 39519,78215D из десятичной в шестнадцатеричную систему счисления. Сначала преобразуем целую часть числа. Последовательно деля ее и образующиеся частные на 16, получаем в последнем частном и остатках цифры всех разрядов шестнадцатеричного представления целой части числа (старший разряд получается последним): 39519 |16 39504 2469 |16 15 2464 154 |16 5 144 9 10 Отсюда 39519D = 9А5FH. Теперь преобразуем дробную часть десятичного числа в шестнадцатеричную систему счисления. Необходимо последовательно умножать на 16 дробную часть исходного десятичного числа и дробные части образующихся произведений. При этом целые части этих произведений являются цифрами шестнадцатеричного представления: 0,78215 *16 12,51440 C *16 8,2304 8 *16 3,6864 3 *16 10,9824 A *16 15,7184 F *16 11,4944 B Таким образом, 0,78215D = 0,С83АFBH, а 39519,78215D = 9A5F,C83BH (с округлением до 4 цифр в дробной части числа). Рассмотрим теперь перевод чисел из двоично-десятичной формы представления в двоичную и обратно, основанный на методе разложения чисел по так называемой схеме Горнера. Такой перевод может быть выполнен в двоичной системе счисления непосредственно цифровым устройством. Перевод чисел из двоично-десятичной формы представления в двоичную (прямой перевод) выполняется в зависимости от порядка числа по следующим формулам. 1. Эквивалент целого десятичного числа А в двоичной системе счисления А' = ((... (аn10 + an-1)10 + ... + а2)10 + a1)10 + а0, (2) где n – число десятичных разрядов А, аi – десятичная цифра в двоичном коде. Вычисления выполняются по правилам двоичной арифметики. 2. Эквивалент правильной десятичной дроби А в двоичной системе А' = 10-1(а-1 + 10-1(а-2 + ... + 10-1(a-(n-1)+ 10-1а-n) ... )) (3) Вычисления выполняются по правилам двоичной арифметики. 3. Эквивалент А' смешанной десятичной дроби А получается путем раздельного преобразования целой и дробной частей по формулам (2) и (3) с последующей “сшивкой” результатов. Перевод двоичных чисел в двоично-десятичный код (обратный перевод)выполняется по следующим формулам. 1. Эквивалент А целого двоичного числа А' в десятичной системе определяется путем последовательного определения количества десятичных весов в исходном значении и преобразования их в двоичный код аn = Ent [А'/10 n] аn-1 = Ent [(А' – an 10 n)/10 n - 1] аn-2 = Ent [(А' – an 10 n – an-1 10 n - 1 )/10 n - 2] (4) … … а0 = Ent [(А' – an 10 n – an-1 10 n - 1 – an-2 10 n – 2 - … - a1 101)/10 0] 2. Эквивалент А правильной двоичной дроби А' в десятичной системе получается путем последовательного определения количества дробных десятичных весов в исходном значении и преобразования их в двоичный код: а-1 = Ent А'10 а-2 = Ent (А'10 - а-1)10 а-3 = Ent ((А'10 - а-1)10 – a-2)10 (5) … … а-n = Ent (…((А'10 - а-1)10 – a-2)10 - … - а-(n-1))10 Ent – операция выделения целой части числа. 3. Смешанные дроби разбиваются на целую и дробную части, десятичный эквивалент получается путем «сшивки» результатов перевода каждой части по формулам (4) и (5). |