Доставка цветов в Севастополе: SevCvety.ru
Главная -> Появление первого микропроцессора

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 [48] 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116

где Ар - фактическое значение Р-ичного числа - подлежащие определению цифры эквивалентного 7?-ично-го числа. При делении обеих частей этого равенства на основание R системы, в которую совершается перевод, получаем целочисленное частное Лр/Р = afi(„ i). -]-+ ... + и остаток одо, который является искомой младшей цифрой эквивалентного Р-ичного числа Ar. Продолжая деление частного на основание R, можно найти очередную цифру urx числа Ar и т. д. Метод определяется рекуррентным выражением

uRi = Api - Apii+1). p, (3.4)

где Лр(,-+) = Лрг/Р; Apq = Ap, г = 0, 1, п - \.

Процесс деления в формуле (3.4) заканчивается, как только Лр(£+) станет равным нулю. Операции деления и вычитания выполняются по правилам исходной Р-ичной арифметики, и в этой же системе формируются искомые коэффициенты am. Например, перевод 10->2 числа 13 имеет вид: Яо = 13 - (13/2) • 2 = 1; а, = 6 - (6/2) 2 = 0; as = 3 - (3/2) 2 = 1; аз = 1 - (1/2) • 2 = 1 и, следовательно, 13о= ПОЬ. Данный метод применим и для обратного перевода RP. Например, перевод 210 для числа ПОЬ имеет вид: ао = 1101 - (1101/1010) 1010 = 1101 - - 1-1010 = 0011; а, = 0001 - (0001/1010) • 1010 = = 0001 - О- 1010 = 0001. Для окончательной записи числа необходимо коэффициенты ао, а, изобразить в десятичной системе: 11012= 130.

В основе второго метода перевода дробных чисел Р->Р лежит та же идея представления Р-ичного числа эквивалентным Р-ичным полиномом, что и для целых чисел:

Арф =ар1 • R~ -\-aR2 . p- + ... + а/г„ Р"",

где Лрф - значение дроби в Р-ичной системе; а- - коэффициенты Р-ичного представления, подлежащие определению. Очевидно, что эти коэффициенты можно получить путем последовательного умножения на Р сначала исходного числа Арф, а затем дробной части очередного произведения, причем целая часть произведения соответствует Очередному Р-ичному коэффициенту, записанному в Р-ичной системе. Метод определяется рекуррентными выражениями:



api = [Арц-1) R]; Api = {Лр(,-i) R};Apo = Aрф, / = 1, 2, и,

(3.5)

где скобки [ ] и { } обозначают соответственно целую и дробную части числа. Умножение выполняется по правилам Р-ичной арифметики и заканчивается, как только Api станет равным нулю или будет достигнута требуемая точность Р-ичного изображения числа Арф, определяемая количеством разрядов п. Например, перевод 102 дроби 0,75 имеет вид: а, =[0,75 2] = [1,5] = 1; а2==[0,5-2=1 и,следовательно, 0,75io= ,1 Ь- Данный метод, как и предыдущие, применим и для обратного перевода Р->Р. Например, перевод 210 дроби ,112 имеет вид: а, =[,11 X Х1010] = [111,1] = 0111; а2 = [,1 • 1010] = [101,0] = 0101. Преобразуя двоичные значения а, и а2 в .эквивалентные десятичные, получим ,ll2 = 0,75io.

Заметим, что процесс перевода дробей в отличие от процесса перевода целых чисел, который всегда оканчивается через конечное число шагов, может быть бесконечным, т. е. представление Р-ичной дроби в Р-ичной системе (или наоборот) может иметь бесконечное количество цифр. Поэтому переводы дробей в общем случае выполнимы лишь приближенно. Число цифр в представлении Р-ичного числа необходимо определять по условию соответствия его точности исходному Р-ичному числу: р-"р = R-"R, откуда

np = np/\ogpR, (3.6)

где пр, пр - количество цифр в изображении Р-ичного и Р-ичного чисел. На практике используют целую часть выражения (3.6), увеличенную на единицу. Например, если точность исходного десятичного числа с четырьмя значащими цифрами равна & = 0,5 • 1000"= 0,05 % (при симметричном способе округления), то его двоичное представление той же точности должно содержать п = = [4-(logio2)-]+ 1 ==[13,3]+ 1 =14 двоичных разрядов. Для уменьшения погрешности перевода целесообразно вычислить также цифру следующего, 15-го разряда, но не сохранять ее, а использовать для округления двоичного числа.

Остановимся на методах перевода чисел с плавающей запятой. Пусть Ар = Р"" • Арф и Ар = Р • Арф - эквивалентные числа с плавающей запятой, представленные соответственно в Р-ичной и Р-ичной системах счисления. Один из методов перевода Р->Р заключается в пред-



варительном преобразовании числа с плавающей запятой Ар в число с фиксированной запятой, выделении целой и дробной частей этого числа, переводе их в соответствии с вышерассмотренными методами в Р-ичную систему и переходе к числу с плавающей запятой Ар. Так, преобразование 102 для числа Л ю = 10 • 0,1375 имеет вид: Л,о= 13,75; 13,0 = 11012; 0,75,о =0,1 Ь; Л2= 1101,11 и, наконец, Л2 = 2 • 0,110111. Данный метод применим лишь для значений порядков, соизмеримых с разрядностью мант-иссы, в противном случае резко возрастают затраты памяти и времени на хранение и обработку нулей.

Общий метод перевода заключается в том, что при переводе Р->Р числа Ар отдельно преобразуют мантиссу Лрф и характеристику этого числа причем каждое

из этих чисел в Р-ичной системе формируется как число с плавающей запятой, а затем выполняются их умножение и нормализация с окончательным получением мантиссы Л/?ф и характеристики Р™", т. е. значения числа Ar. Так, преобразование 10-v2 для числа Ло= 10 - 0,1375 имеет вид:

10,o = 2-0,1100102; 0,1375,о = 0,00100011... = = (0,100011...)-2-; Л2 = 2 • 0,110010 • 2" X

Х(0,100011...) = 2 (0,011010...) = 2" • (0,11010...). Заметим, что в данном примере для получения Л2 с точностью числа Л10 надо брать 14 разрядов двоичной мантиссы. Подробности метода перевода поясняются далее при рассмотрении конкретных программ.

3.2. преобразования целых десятичных чисел в двоичные

Программа П108 преобразует двухразрядное десятичное число Л10 е [00,99] в эквивалентное однобайтное двоичное число Лг е [00,63Н] по методу (3.1):

ОЕОО ORG ОЕООН

П108:

;ПОДПРОГРАММА ПРЕОБРАЗОВАНИЯ ДВОИЧНО-ДЕСЯТИЧНОГО (КОД S8421 .) МЕЛОГО БЕЗЗНАКОВОГО ЧИСЛА ФОРМАТА 2*4 В ДВОИЧ-гНОЕ ЧИСЛО ФОРМАТА 8.

гВХОДНОИ ПАРАМЕТР:(А)-ДВОИЧНО-ДЕСЯТИЧНОЕ ЧИСЛО.БЫХОДНОЙ fHAPAMETPs(А)-ЭКВИВАЛЕНТНОЕ ДВОИЧНОЕ ЧИСЛО.ИСПОЛЬЗУЮТСЯ ;РЕГИСТРЫ (BfC).

?0МЕНКА:ДЛИНА-14 ЕАЙТгВРЕМЯ-64 ТАКТА.

!*««**»»§(»»»«»*»**»«•»»«•*»»«»****»*»»***»*******»»»)(*)(*»« гВЫДЕЛЕНИЕ СТАРШЕЙ СТЦ И МЛАДШЕЙ МЛЦ ЦИФР ЧИСЛА ОЕ(Х) 47 MOV ВгА



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 [48] 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116



0.0075
Яндекс.Метрика