ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 06.12.2023
Просмотров: 440
Скачиваний: 5
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
20 методы: метод непосредственного замещения; метод последовательного деления на основание новой системы счисления; метод последовательного умножения на основание новой систе- мы счисления.
Метод непосредственного замещения. Метод применяется для перевода всех видов чисел (целых, дробных и смешанных). Перевод числа из СС с основанием q, в СС с основанием р производится в сле- дующем порядке.
1. Заданное число в СС с основанием q представляется в виде взвешенной суммы (1.1):
∑
−
−
=
=
1
n
m
i
i
i
q
a
А
2. Все цифры а
i
и основание q записываются (замещаются) циф- рами системы счисления с новым основанием р .
3. Выполняются все арифметические операции в соответствии с формулой (1.1) в СС с основанием р .
Пример 1: A
(10)
= 35,25
→
A
(2)
35,25
(10)
= 3
⋅
10 1
+ 5
⋅
10 0
+ 2
⋅
10
-1
+ 5
⋅
10
-2
;
;
1010 1010 1
101 1010 1
10 1
101 1010 11
(2)
⋅
⋅
+
⋅
+
⋅
+
⋅
=
А
A
(2)
≈
100011,01.
Пример 2 : A
(2)
= 1001,011
→
A
(10)
1001,011
(2)
= 1
⋅
10 3
+ 0
⋅
10 2
+ 0
⋅
10 1
+ 1
⋅
10 0
+ 0
⋅
10
-1
+ 0
⋅
10
-2
+1
⋅
10
-3
;
A
(10)
= 1
⋅
2 3
+ 0
⋅
2 2
+ 0
⋅
2 1
+ 1
⋅
2 0
+ 0
⋅
2
-1
+ 1
⋅
2
-2
+ 1
⋅
2
-3
;
A
(10)
= 9,375.
Метод непосредственного замещения удобен при переводе чи- сел из любой CC в ту СС, в которой наиболее просто выполняются арифметические операции. При ручном счете этим методом удобно переводить числа в десятичную СС, а при автоматическом переводе с помощью ЭВМ - в двоичную СС.
Метод последовательного деления на основание новой системы
счисления. Этот метод используется только для перевода целых чисел.
Для перевода числа из СС с основанием q, в СС с основанием р необ- ходимо :
1. Представить основание новой СС р в старой СС с основанием q.
2. Последовательно делить число и промежуточные частные деле-
21 ния этого числа на основание новой системы счисления, представ- ленные в старой СС. Полученные остатки и последнее частное будут искомыми изображениями цифр р - ичного числа, выраженные в ста- рой СС.
3. Первый остаток записать в младший разряд, все последующие остатки в более старшие, а последнее частное - в старший разряд чис- ла.
4. Перевести найденные цифры р - ичного числа в СС с основа- нием р .
Пример: А
(10)
= 559
→
А
(16)
1. q = 16 2.
5 5 9 1 6
-
4 8 3 4 1 6 7 9 3 2 2 1 6 6 4 2 0 0 1 5 2
а
0
(q) = 15 а
1
(q) = 2 а
2
(q) = 2 3. a
0(10)
= 15
→
a
0(16)
= F; a
1(10)
= 2
→
a
1(16)
= 2;
a
2(10)
= 2
→
a
2(16)
= 2.
4. A
(16)
= 22F
Ответ: 559
(10)
= 22F.
Метод последовательного умножения на основание новой сис-
темы счисления. Этот метод используется для перевода из одной СС в другую только правильных дробей. При переводе числа из одной
СС с основанием q, в другую с основанием р этим методом необхо- димо:
1. Представить основание новой СС р в СС с основанием q.
2. Последовательно умножать это число и промежуточные про- изведения на основание новой СС р, отбрасывая каждый раз целые части произведений. Эти целые части промежуточных произведений являются изображением цифр искомого р - ичного числа, записанные в старой СС.
3. Записать целую часть первого произведения в старший (a
-1
) разряд р - ичного числа, а целые части i - тых произведений в после- дующие a
-i
разряды.
4. Записать найденные цифры р - ичного числа, выраженные в
СС с основанием q, в СС с основанием р .
22
Пример: A
(10)
= 0,675
→
A
(2)
1. р
(10)
= 2 ;
2. 0,675 х 2 = 1,350 a
-1
= 1;
0,350 х 2 = 0,7 а
-2
= 0;
0,7 х 2 = 1,4 а
-3
= 1;
0,4 х 2 = 0,8 а
-4
= 0;
0,8 х 2 = 1,6 а
-5
= 1;
0,6 х 2 = 1,2 а
-6
= 1 и т.д.
3. Так как 1
(10)
= 1
(2)
, 0
(10)
= 0
(2)
, то А
(2)
= 0,101011 и т.д.
Дробная часть (частичное произведение), полученная при по- следовательном умножении на основание, часто не принимает значе- ния нуля. В этом случае процесс умножения продолжается до полу- чения количества разрядов, определяемых разрядной сеткой числа или до обеспечения заданной точности представления числа.
Для перевода смешанных чисел (содержащих целую и дробную часть) целую часть получают методом деления на основание новой
СС, а дробную - методом умножения на основание новой СС. Если основание одной СС является целой степенью основания другого (на- пример 8 = 2 3
, 16 = 2 4
), то перевод чисел из одной СС в другую су- щественно упрощается, для этого каждую восьмеричную (шестнадца- теричную) цифру заменяют равным ей трехзначным (четырехзнач- ным) двоичным числом, т.е. двоичной триадой (тетрадой).
1.2.4 Понятие о системах счисления в остаточных классах
Недостатком позиционных систем счисления является наличие связи между разрядами при выполнении арифметических действий, что проявляется в возникновении и учете распространения переносов и займов от младших разрядов к старшим. Это усложняет аппаратуру и уменьшает быстродействие цифровой ЭВМ.
Система счисления в остаточных классах (СОК) является непо- зиционной системой и позволяет выполнять арифметические дейст- вия, кроме деления, во всех разрядах одновременно и независимо
(поразрядно).
Каждый разряд в СОК имеет свое основание. В качестве основа- ний системы выбирают ряд целых положительных взаимно простых
23 чисел
1 2
,
,...,
п
р р
р . Основания системы определяют диапазон пред- ставления целых чисел от 0 до Р :
1 2
п
Р
р
р
р
=
⋅
⋅ ⋅
Любое целое число А, удовлетворяющее условию 0 А P
≤ <
, представляется в СОК набором остатков от деления А на основания системы, такое представление является единственным:
1 2
сок
п
А
а а
а
= ⋅ ⋅ ⋅
, где
i
а - наименьший неотрицательный остаток от деления числа А на основание
(
( /
))
i
i
i
p
a
ост А р
=
Пример. Записать число А = 17 в СОК, если
1
p = 3,
2
p = 5,
3
p = 7.
Решение. Проверим выполнение условия A P
<
представимости заданного числа в СОК с основаниями
{
}
3,5,7 :
3 5 7 105, 17 105
P
= ⋅ ⋅ =
<
Условие представимости числа выполняется (17<105), остатки по заданным основаниям будут следующими:
1 1
2 2
3 3
( /
)
(17 / 3)
2;
( /
)
(17 / 5)
2;
( /
)
(17 / 7)
3.
a
ост А р
ост
a
ост А р
ост
a
ост А р
ост
=
=
=
=
=
=
=
=
=
Следовательно,
сок
А
= 2 2 3
⋅ ⋅
Рассмотрим правила выполнения арифметических операций.
Правило сложения. При выполнении условия представимости, как слагаемых, так и суммы (А < P, B < P, A + B < P), для получения в
СОК суммы
1 2
(
)
сок
сок
п
С
А
В
С С
С
=
+
=
⋅
⋅ ⋅
слагаемых
сок
А
и
сок
В
:
1 2
1 2
,
,
сок
п
сок
п
А
а а
а
В
в в
в
= ⋅ ⋅ ⋅
= ⋅ ⋅ ⋅
достаточно сложить остатки одноименных слагаемых (сложение сле- дует производить по модулю соответствующего основания):
(
)
/
i
i
i
i
С
ост
а
в
p
=
+
Пример. Сложить в СОК числа
A
= 8,
В
= 4 с набором основа- ний
{
}
3,5,7
Решение. Условия представимости выполняются, так как
Р
= 3
⋅
5
⋅
7 = 105;
А
=
8 < 105,
В
= 4 < 105,
А
В
+
= 8 + 4 = 12 < 105;
(
1 4 4,
2 3 1)
сок
сок
В
А
= ⋅ ⋅
= ⋅ ⋅
Согласно правилу сложения находим
24
А
СОК
= 2. 3. 1
+
В
СОК
= 1. 4. 4 3. 7. 5
(А+В)
СОК
= 0. 2. 5
Действительно, (12)
0 2 5.
сок
= ⋅ ⋅
Правило умножения. Обозначим «*» символ операции умноже- ния.
При выполнении условия представимости
(
,
,
)
А
P B
P A B
P
<
<
∗ <
для получения произведения
1 2
(
)
сок
сок
п
C
А В
С С
С
=
∗
=
⋅
⋅
двух сомножителей
сок
А
и
:
сок
В
1 2
,
п
А
а а
а
= ⋅ ⋅
1 2
сок
п
В
в в
в
= ⋅ ⋅
достаточно перемножить по соответствующим модулям одноименные остатки сомножителей:
(
)
/
i
i
i
i
С
ост
а
в
p
=
∗
Пример. Перемножить в СОК числа с набором оснований
{
}
3,5,7 8
А
=
,
4
В
=
Решение. Так как
3 5 7 105,
8 105,
4 105,
Р
А
D
= ⋅ ⋅ =
= <
= <
32 105
A B
∗ =
<
, то
А
СОК
= 2.
3. 1
*
В
СОК
= 1.
4. 4 2. 12 4
(А*В)
СОК
= 2.
2. 4
Действительно, (32)
2 2 4.
сок
= ⋅ ⋅
Главное преимущество СОК состоит в том, что основные ариф- метические операции, кроме деления, в СОК выполняют поразрядно, вследствие чего могут быть достигнуты значительно более высокие скорости выполнения операций, чем в позиционных системах.
К недостаткам СОК можно отнести:
1. Сложность выполнения операций деления и сравнения чисел.
2. Сложность определения факта переполнения разрядной сетки, т.е. выхода результата за диапазон представления чисел.
3. Сложность обратного перевода чисел из СОК в позиционную
СС.
Указанные недостатки являются причиной того, что СОК нахо- дят пока ограниченное применение в специализированных ЭВМ, при решении задач, в которых преобладают операции сложения, вычита- ния и умножения.
25
Задания
для самостоятельной работы
1. Перевести десятичные числа: 19,5; 32,125; 17,25; 44,5; 27,25;
52,6 в двоичную систему счисления.
2. Перевести двоичные числа: 11011, 101; 1101,011; 10101,11;
11001,101; 100001,1 в десятичную систему счисления.
3. Перевести десятичные числа: 20; 34; 17; 42; 87; 95 в восьме- ричную систему счисления.
4. Перевести десятичные числа 125; 1022; 511; 62; 128; 100; 120 в двоичную систему счисления (в восьмеричную СС; в шестнадцате- ричную СС).
5. Перевести десятичные дроби 0,5; 0,25; 0,375; 0,1; 0,6; 0,1275 в двоичную систему счисления с ошибкой, не превышающей значения
2
-8 6. Записать в двоичной системе счисления число А
(8)
= 373,25.
7. Записать в восьмеричной системе счисления число
А
(2)
= 0100111010.
8. Записать в восьмеричной системе счисления число
А
(10)
= 389,79.
9. Записать в двоичной системе счисления число
А
(16)
= 3ДF,СА.
10. Записать в восьмеричной системе счисления число
А
(16)
= АF,ДВ2.
11. Записать в десятичной системе счисления число
А
(16)
= АЗFE,2Д.
12. Записать в двоичной системе счисления число А
(10)
= 67, 125.
13. Записать в двоичной системе счисления число А
(10)
= 1,678.
14. Записать в восьмеричной системе счисления число
А
(10)
= 29,375.
15. Записать в шестнадцатеричной системе счисления число
А
(10)
= 738,275.
26 1.3 Машинные двоичные коды и действия с ними
1.3.1 Формы представления чисел
В ЭВМ применяются две формы представления чисел: с фикси- рованной запятой и с плавающей запятой. Прежде чем рассмотреть каждую из форм представления чисел запишем некоторое произволь- ное число А в виде полинома
,
1 1
0 0
2 2
1 1
m
m
n
n
n
n
q
а
q
а
q
а
q
а
q
а
А
−
−
−
−
−
−
−
−
⋅
+
+
⋅
+
⋅
+
+
⋅
+
⋅
=
(1.3) где а
i
- цифра из алфавита цифр выбранной позиционной системы счисления (ПСС);
q
i
- основание ПСС;
i – коэффициент, учитывающий позицию (место расположения) цифры в составе числа.
Затем преобразуем формулу (1.3) к виду:
1
A
p
n
m
i
p
i
i
p
M
q
q
a
q
А
⋅
=
⋅
⋅
=
∑
−
−
=
−
Здесь М
А
- цифровая часть числа А, называемая его мантиссой, р - це- лое число, которое называют порядком. Множитель q
p
называют масштабом.
Для чисел c фиксированной запятой (ФЗ) величина р постоянна и обычно равна п . При р = п мантисса числа будет правильной дро- бью, причем
r
A
q
M
−
−
≤
1
,
(1.4) где r - количестве разрядов, используемых для записи мантиссы чис- ла. Изображается М
А
записью вида
r
A
a
a
a
M
−
−
−
=
,
0 2
1
В машинах с ФЗ любое число А представляется только своей мантиссой, а масштаб q
p
в машине никак не отображается. Поэтому масштабы чисел необходимо учитывать в алгоритмах решаемых за- дач. Это делается путем масштабирования всех исходных данных и результатов всех операций в математическом списании задачи так, чтобы не допустить нарушения условия (1.4). В противном случае происходит грубое искажение результата из-за потери в ЭВМ стар- ших разрядов мантиссы.
Достоинством представления чисел в форме с ФЗ является ма- лый расход оборудования для представления числовой информации и
27 высокая производительность арифметико-логического устройства
(АЛУ), обусловленные простотой алгоритмов выполнения арифмети- ческих операций. Недостаток - необходимость осуществления мас- штабирования исходных данных на этапе подготовки вычислений.
Представление чисел в форме с плавающей запятой (ПЗ) требует отображения не только мантиссы М
А
каждого числа, но и его масшта- ба q
p
. Для представления последнего достаточно записать только его порядок р. Основное достоинство такого представления в том, что отпадает необходимость в масштабировании переменных. Недостат- ком является сложность алгоритмов реализации арифметических опе- раций. Необходимость выполнения действий и над мантиссами чисел, и над их порядками ведет к увеличению объема оборудования и к снижению производительности машин.
К бортовым ЦВМ предъявляются жесткие ограничения на мас- согабаритные характеристики и время выполнения арифметических операций. Одним из путей достижения этих ограничений является использование представления чисел с фиксированной запятой. А сами числа должны быть представлены в виде правильных дробей, целая часть которых равна нулю. В связи с этим между числом и его пред- ставлением в ЦВМ существуют отличия. Число, преобразованное для размещения внутри ЦВМ, называется машинным кодом.
1.3.2 Машинные двоичные коды
В цифровых БВМ применяют прямой, обратный и дополнитель- ный коды чисел. Многообразие применяемых кодов определяется их достоинствами и недостатками, а также особенностями используемых операционных устройств.
Прямой код удобен для хранения и передачи чисел, обратный и дополнительный коды - для выполнения арифметических операций.
Рассмотрим эти коды на примере кодирования двоичных чисел с фик- сированной запятой вида
(
)
1 0
1
(2)
<
±
=
−
−
A
a
a
А
m
. Индекс 2 для обо- значения двоичных чисел будем в дальнейшем опускать.
Прямой код обозначают через [ А ]
пк
:
[ ]
≤
≥
=
−
−
−
−
0
,
1
,
0
,
0 1
1
пк
А
если
a
a
А
если
a
a
A
m
m
(1.5)
28
Нуль в прямом коде имеет два представления:
[ ]
0 0
0 0
пк
=
+
и
[ ]
0 0
1 0
пк
=
−
Пример. А = + 0,101; В = - 0,101. Найти [А]
пк и [В]
пк
Решение. Согласно (1.5) находим: [А]
пк
= 0.101; [В]
пк
= 1.101.
Обратный код обозначается следующим образом: [А]
ок
. Обрат- ный код положительных чисел совпадает с прямым кодом. Для отри- цательных чисел правило формирования обратного кода заключается в записи 1 в знаковый разряд и инвертировании (замена нуля едини- цей и наоборот) всех остальных разрядов числа.
[ ]
≤
≥
=
−
−
−
−
−
−
0
,
1
,
0
,
0 2
1 2
1
ок
А
если
a
a
a
А
если
а
a
a
A
m
m
Нуль имеет следующие два представления:
[ ]
0 0
0 0
ок
=
+
и
[ ]
1 1
1 0
ок
=
−
Пример. А = + 0,101; В = - 0,101
Решение. Так как A положительное число, то
[ ]
ОК
A
=
0.101. Для отрицательного В получим
[ ]
ОК
В
=
1.010 .
Дополнительный код [А]
дк положительного числа равен его пря- мому коду. Отрицательное число А в процессе кодирования заменяет- ся дополнением его прямого кода до двух т.е. величины 10.0
(2)
:
[ ]
[ ]
,
А
.
А
пк дк
10
−
=
если А < 0,
[ ]
[ ]
,
А
А
пк дк
=
если А
≥
0.
Пусть А = - 0,1011. Найти [A]
дк
В соответствии с правилом кодирования
1 11 11+1 10
(2)
= 10.0000
[A]
пк
=
-
1.1011
[A]
дк
= 1.01 01 =[A]
ок
+1 мл. разряда
Как видно, все цифры результата оказались инвертированными
(
i
а
= 1, если
i
a
= 0 и
i
а
= 0, если
i
a
= 1), за исключением последней значащей единицы и знакового разряда.
Таким образом, можно сформулировать два правила перевода:
1. Дополнительный код отрицательного числа получается из прямого кода этого числа путем инвертирования всех разрядов, кроме знакового, и прибавлением единицы младшего разряда.
29 2. Для получения дополнительного кода отрицательного числа следует в прямом коде этого числа инвертировать все цифры кроме знаковой, последней значащей единицы и следующих за ней в более младших разрядах нулей.
Примеры:
[A]
пк
= 1.1010111; [A]
дк
= 1.0101000 + 0.0000001 = 1.0101001;
[В]
пк
= 1.1010000; [В]
дк
= 1.01011111 + 0.0000001 = 1.0110000.
В дополнительном коде нуль имеет единственное значение
[0]
дк
=0.000...00.
Результат выполнения операций сложения или вычитания для дробных чисел может оказаться по абсолютной величине большим или равным единице, поэтому, чтобы не потерять значащую цифру результата в разряде единиц в обратных и дополнительных кодах, не- обходимо, в общем случае, предусмотреть представление цифра а
0
разряда единиц, при этом знак числа а
зн будет уже представлен в раз- ряде для двоек:
[ ]
m
зн
а
а
а
а
А
−
−
=
1 0
. Коды таких чисел называют моди- фицированными.
Модифицированный обратный код (МОК) числа А имеет вид:
[ ]
≤
≥
=
−
−
−
−
0
,
1
,
0
,
0 1
0 1
0
мок
А
если
а
а
а
А
если
а
а
а
A
m
m
Модифицированный дополнительный код (МДК) обозначается через
[ ]
[ ]
[ ]
≤
+
≥
=
0
,
1
,
0
,
мок мок мдк
А
если
разряда
мл
A
А
если
A
A
1.3.3 Арифметические действия в кодах
Выполнение операций сложения и вычитания кодов. Правила сложения многоразрядных чисел (двух положительных или двух от- рицательных), записанных в прямом коде, отличаются от правил сло- жения многоразрядных двоичных чисел только в определении знака.
Знаковый разряд при суммировании кодов чисел с одинаковыми зна- ками равен знаковым разрядам слагаемых.