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

1 семестр / лр 11

.docx
Скачиваний:
28
Добавлен:
16.12.2020
Размер:
81.86 Кб
Скачать

Учреждение образования

«БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра информационных систем и технологий

ОТЧЕТ

по лабораторной работе №11

Битовые операции

Выполнила: студентка ФИТ группы № 9 Каленик Алина

Проверила: Пустовалова Наталья Николаевна

Минск 2020

Задание №1

Ввести целое число A. Инвертировать все биты с 2 по 14, включая эти биты. Вывести результат.

#include <iostream>

using namespace std;

int main()

{

system("color FD");

int a, maska;

char tmp[33];

setlocale(LC_CTYPE, "Russian");

cout << " Введите число ";

cin >> a;

_itoa_s(a, tmp, 2);

cout << " В двоичной системе " << tmp << endl;

maska = 1;

maska = (maska << 13);

maska = maska - 1;

maska = maska << 1;

_itoa_s(maska, tmp, 2);

a = a ^ maska;

maska = 1 << 15;

a = a & (~maska);

_itoa_s(a, tmp, 2);

cout << " Инвертированное число " << tmp << endl;

}

Задание №2

Инвертировать n битов в числе А влево от позиции p, заменить ими m битов числа В, начиная с позиции q.

#include <iostream>

using namespace std;

int main()

{

system("color 0D");

int a, maska, n, p, m, q, b, g;

char tmp[33], arr[33], sqr[33];

g = (1 << 32) - 1;

_itoa_s(g, sqr, 2);

setlocale(LC_CTYPE, "Russian");

cout << " Введите число A ";

cin >> a;

_itoa_s(a, tmp, 2);

cout << " В двоичной системе " << tmp << endl;

cout << " Введите позицию ";

cin >> p;

cout << " Введите число битов ";

cin >> n;

maska = 1 << n;

maska = maska - 1;

maska = maska << p;

a = a ^ maska;

a = (a & maska) >> p;

_itoa_s(a, tmp, 2);

cout << " Инвертированная часть числа " << tmp << endl;

cout << " Введите число B ";

cin >> b;

_itoa_s(b, arr, 2);

cout << " В двоичной системе " << arr << endl;

cout << " Введите позицию ";

cin >> q;

cout << " Введите число битов ";

cin >> m;

maska = 1 << m;

maska -= 1;

n = (~a & maska) << q;

_itoa_s(a, tmp, 2);

g -= n;

_itoa_s(g, sqr, 2);

b &= g;

_itoa_s(b, arr, 2);

a &= maska;

b |= (a << q);

_itoa_s(b, arr, 2);

cout << " Измененное число " << arr << endl;

}

Соседние файлы в папке 1 семестр