Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная №15

.docx
Скачиваний:
30
Добавлен:
14.12.2018
Размер:
450.11 Кб
Скачать

Одеський національний політехнічний університет

Інститут комп’ютерних систем

Кафедра інформаційних систем

Варіант №1

Лабораторна робота №15

По дисципліні “Алгоритмізація і програмування”

Тема: “Побітові операції на мові програмування С”

Виконав:

Студент гр. АІ-171

Анищенко М.О.

Перевірили:

Глава М.Г.

Одеса 2018

Мета роботи: Набуття практичних навичок програмування із застосуванням бітових даних та операції.

Завдання 1: Знайти значення виразу згідно варіанту. Для операцій множення і ділення використовувати зрушення вліво і вправо. Вихідні дані ввести з файлу А, а результат записати у файл В.

Блок-схема 1:

Код програми 1:

#include<stdio.h>

int main()

{

FILE* fa = fopen("a.txt", "r");

FILE* fb = fopen("b.txt", "w");

unsigned int a = 0, b = 0;

while(fscanf(fa, "%d%*c%d", &a, &b) != EOF)

{

int res = (((a + (b << 1)) << 3) + 9) >> 3;

printf("9(%d+2*%d)/8 = %d\n", a, b, res);

fprintf(fb, "%d\n", res);

}

fclose(fa);

fclose(fb);

return 0;

}

Приклад виконання:

Файл a.txt:

12 43

35 23

13 9

4 5

3 7

4 1

Файл b.txt:

99

82

32

15

18

7

Завдання: Для заданих чисел виконати дії, використовуючи логічні побітові операції. Оформити виведення результату кожної операції у вигляді двійкових і десяткових кодів.

Блок-схема 2:

Код програми:

#include<stdio.h>

#include <stdlib.h>

void DecToBin(int a)

{ for(int i = 0; i < 8; i++)

{ printf("%d", (a & 128) ? 1 : 0);

a = a << 1; }}

int main()

{ unsigned char a = 101;

printf("\nBIN(a): ");

DecToBin(a);

printf("\n\n");

printf("1) DEC: %d\n BIN: ", a & 3);

DecToBin(a & 3);

printf("\n\n");

printf("2) DEC: %d\n BIN: ", a & 250);

DecToBin(a & 250);

printf("\n\n");

printf("3) DEC: %d\n BIN: ", a | 8);

DecToBin(a | 8);

printf("\n\n");

printf("4) DEC: %d\n BIN: ", a ^ 96);

DecToBin(a ^ 96);

printf("\n\n");

return 0;}

Приклад виконання:

Висновки:

Написані програми реалізують процеси ділення та множення за допомогою побітових операцій, а також виконують певні логічні операції з цілими часлами.