
III. Числовые данные
|
а) |
б) |
в) |
г) |
д) |
r |
20 |
24 |
26 |
28 |
30 |
m |
4 |
4 |
3 |
3 |
2 |
x1 |
-2,72 |
-3,18 |
-3,57 |
-0,41 |
-2,17 |
x2 |
-0,04 |
-1,92 |
0,82 |
1,63 |
4,31 |
x3 |
1,10 |
2,71 |
4,44 |
5,17 |
|
x4 |
5,07 |
4,18 |
|
|
|
1.12 Арифметические операции над двоичными кодами.
Каждое целое число x (| x | 2 n –1) задается булевским массивом размерности n +1: массив (x0, x1, … , xn) задает число
a1 2n-1 + a2 2n-2 + … + an-1 2 + an ,
где
причем знак числа определяется по x0: знак +, если x0 = true , и знак , если x0 = false .
По заданной функции F(x, y, z) и трем числам x, y, z (в виде булевских массивов) вычислить число u = F(x, y, z) также в виде булевского массива. Полученное число вывести на печать. Входными данными программы являются: n и три булевских массива; выходным значением является u .
Функция F(x, y, z) содержит операции; для ее вычисления в программе предусмотреть процедуры выполнения этих операций над булевскими векторами.
Исходные данные
I. Функция F(x, y, z):
а)
; (
операции + и )
б)
;
(+ и 2i
)
в);
(+ и
i)
г)
;
( и
)
д)
;
( и
i)
е)
;
(+, 2i,
i)
ж)
;
(+, ,
)
з)
;
(+,
i,
)
и)
;(,
,2i)
к)
.
(,
,
i)
Пояснение.
- операция + определяется как сложение чисел по модулю 2 n;
- операция определяется как вычитание чисел по модулю 2 n;
- операция 2i – умножение числа на 2i (результат берется по модулю 2 n);
- операция
i
- циклического сдвига значащих разрядов
числа на i позиций
вправо;
- операция
- изменения значащих разрядов числа на
противоположное.
Старшими считаются операции 2i
,
i,
,
младшими +, .
II. Вывод числа u - результата.
а) в виде массива булевских чисел;
б) в виде десятичного числа (перевод числа u в десятичную систему оформить в виде процедуры функции);
в) в шестнадцатеричном виде.
III. Числовые значения
-
а)
б)
в)
г)
д)
10
12
15
18
20
Значения булевских массивов для x, y, z произвольны.