
Чурилов / лаб 1
.docxМИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
(ГУАП)
КАФЕДРА № 44
Преподаватель
канд. техн. наук, доцент Бариков Л.Н.
Отчёт
по лабораторной работе №1
по дисциплине ОСНОВЫ ПРОГРАММИРОВАНИЯ
на тему: «Следования»
Работу выполнил
студент гр. Z9411 Чурилов А.С.
Санкт-Петербург
2020
Формулировка задания:
Выполнить поразрядные логические операции над целыми числами
10 ˄ 117
10 ˅ -117
10 << 3
(-10 ˅ ¬117) ˄ ¬36 ˅ -11
Математическая модель (ручной счёт)
1) Находим внутреннее представление используемых десятичных чисел. Для этого переводим их в двоичную форму и размещаем каждое в 1 байте.
1010 =000010102
-1010=111101102
11710=011101012
-11710=100010112
310=000000112
3610=001001002
-1110=111101012
2) Выполняем необходимые поразрядные логические операции и переводим получившиеся результаты в десятичную форму.
10 = 00001010
117 = 01110101
10 ˄ 117 = 00000000 = 010
10 = 00001010
-117 = 10001011
10 ˅ -117 = 10001011 = 13910
10 = 00001010
10 << 3 = 01010000 = 8010
117 = 01110101
¬117 = 10001010
36 = 00100100
¬36 = 11011011
-10 = 11110110
¬117 = 10001010
-10 ˅ ¬117 = 11111110
10 ˅ ¬117 = 11111110
¬36 = 11011011
(-10 ˅ ¬117) ˄ ¬36 = 11011010
(-10 ˅ ¬117) ˄ ¬36 = 11011010
-11 = 11110101
(-10 ˅ ¬117) ˄ ¬36 ˅ -11 = 11111111 = 255
Схема алгоритма решения
Начало
a
= 10
˄
117
Вывод a
b
= -10 ˅ -117
Вывод b
c
= 10 << 3
Вывод c
d
= (-10 ˅ ¬117) ˄ ¬36 ˅
-11
Вывод d
Конец
Текст программы
#include<stdio.h>
using namespace std ;
int main()
{unsigned char a, b, c, d ;
a = 10 & 117 ;
printf("10 AND 117 = (0) = %i\n", a) ;
b = 10 | -117 ;
printf("10 OR -117 = (139) = %i\n", b) ;
c = 10 << 3 ;
printf("10 << 3 = (80) = %i\n", c) ;
d = (-10 | ~117) & ~36 | -11;
printf("(-10 OR NOT117) AND NOT36 OR -11 = (255) = %i\n", d);
return 0 ;
}
Скриншот контрольного примера выполнения программы