Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2 сем / Задание / ОАиП_для_ЗАО_20_весна.docx
Скачиваний:
4
Добавлен:
04.07.2024
Размер:
2.44 Mб
Скачать

Пример программы

Формулировка задания:

Выполнить поразрядные логические операции над целыми числами

41 ˄ -21

-41 ˅ 21

41 21

41 << 2

¬43 ˅ -21 ˄ (¬-41 29)

Математическая модель (ручной счёт)

1) Находим внутреннее представление используемых десятичных чисел. Для этого переводим их в двоичную форму и размещаем каждое в 1 байте.

4

1

2

4

0

2

0

2

1

2

0

1

0

2

0

1

0

5

2

0

4

2

2

1

2

1

2

0

0

0

1

4

1

=

0

0

1

0

1

0

0

1

-4

1

=

1

1

0

1

0

1

1

1

2

1

=

0

0

0

1

0

1

0

1

-2

1

=

1

1

1

0

1

0

1

1

2

9

=

0

0

0

1

1

1

0

1

4

3

=

0

0

1

0

1

0

1

1

2) Выполняем необходимые поразрядные логические операции и переводим получившиеся результаты в десятичную форму.

4

1

=

0

0

1

0

1

0

0

1

-2

1

=

1

1

1

0

1

0

1

1

4

1

A

N

D

-2

1

=

0

0

1

0

1

0

0

1

=

4

1

-4

1

=

1

1

0

1

0

1

1

1

2

1

=

0

0

0

1

0

1

0

1

-4

1

O

R

2

1

=

1

1

0

1

0

1

1

1

=

2

1

5

4

1

=

0

0

1

0

1

0

0

1

2

1

=

0

0

0

1

0

1

0

1

4

1

X

O

R

2

1

=

0

0

1

1

1

1

0

0

=

6

0

4

1

=

0

0

1

0

1

0

0

1

4

1

<<

2

=

1

0

1

0

0

1

0

0

=

1

6

4

-4

1

=

1

1

0

1

0

1

1

1

N

O

T

-4

1

=

0

0

1

0

1

0

0

0

4

3

=

0

0

1

0

1

0

1

1

N

O

T

4

3

=

1

1

0

1

0

1

0

0

N

O

T

-4

1

=

0

0

1

0

1

0

0

0

2

9

=

0

0

0

1

1

1

0

1

(N

O

T

-4

1)

X

O

R

2

9

=

0

0

1

1

0

1

0

1

-2

1

=

1

1

1

0

1

0

1

1

(N

O

T

-4

1)

X

O

R

2

9

=

0

0

1

1

0

1

0

1

-2

1

A

N

D

(N

O

T

-4

1

X

O

R

2

9)

=

0

0

1

0

0

0

0

1

-2

1

A

N

D

(N

O

T

-4

1

X

O

R

2

9)

=

0

0

1

0

0

0

0

1

N

O

T

4

3

=

1

1

0

1

0

1

0

0

N

O

T

4

3

O

R

-2

1

A

N

D

(N

O

T

-4

1

X

O

R

2

9)

=

1

1

1

1

0

1

0

1

=

2

4

5

Схема алгоритма решения

Начало

a = 41 & -21

Вывод

a

b = -41 | 21

Вывод

b

c = 41 ^ 21

Вывод

c

d = 41 << 2

Ввод

d

e = ~43 | -21 & (~-41 ^ 29)

Вывод

e

Конец

Текст программы

#include<stdio.h>

using namespace std ;

int main()

{unsigned char a, b, c, d, e ;

a = 41 & -21 ;

printf("41 AND -21 = (41) = %i\n", a) ;

b = -41 | 21 ;

printf("-41 OR 21 = (215) = %i\n", b) ;

c = 41 ^ 21 ;

printf("41 XOR 21 = (60) = %i\n", c) ;

d = 41 << 2 ;

printf("41 << 2 = (164) = %i\n", d) ;

e = ~43 | -21 & (~-41 ^ 29) ;

printf("NOT 43 OR -21 AND (NOT-41 XOR 29) = (245) = %i\n", e) ;

return 0 ;

}

Скриншот контрольного примера выполнения программы