Нашёл программу выполняющую условие моей задачи. Нужно организовать ввод самого числа А и ввод числа n. Ко всему этому мне подсказали недостаток данной программы. она выполняет действия в битовом типе данных,а необходимо использовать int.
include <iostream>
include <bitset>
using namespace std;
const unsigned int BYTE = 10; // количество разрядов
const unsigned int STEP = 2; // на сколько шагов нужно будет сдвинуть
int main() {
bitset<BYTE> bit(106), part1, part2, result;
cout << "bit\t" << bit << endl; // исходное число
// результат будет составлен из двух частей
part1 = bit >> STEP; // первая часть, два сдвига вправо
cout << "part1\t" << part1 << endl;
part2 = bit << BYTE - STEP; // вторая часть, восемь сдвигов влево (десять разрядов числа минус два шага)
cout << "part2\t" << part2 << endl;
result = part1 | part2; // объеденияем части
cout << "result\t" << result << endl; // результат объединения частей
system("pause");
}
Предполагаю,что нужно заменить эту часть на ввод данных в main.
const unsigned int BYTE = 10; // количество разрядов
const unsigned int STEP = 2; // на сколько шагов нужно будет сдвинуть
И не использовать ничего кроме include <iostream>
. нельзя использовать include <bitset>
и include <limits.h>
Думаю, вы уже сами нашли решение.
На всякий случай, для типа данных long
, программа вместе с вводом и проверками может выглядеть как-то так:
#include <iostream>
#include <limits.h>
using namespace std;
int main () {
cout << "Rotate long `a` rigth, enter value of `a` and shift:\n";
long a, n;
size_t nb = sizeof(a) * CHAR_BIT;
cout << "long a is " << nb << " bits long\n";
while (cin >> a >> n) {
if (n > -1 && n < nb) {
cout << "a = " << dec << a << " 0x" << hex << a << '\n';
// это собственно вращение
// cast к unsigned необходим, чтобы при сдвиге влево знаковый разряд не распространялся
a = (((unsigned long)a) >> n) | (a << (nb - n));
cout << "after rotr a = " << dec << a << " 0x" << hex << a << '\n';
} else
cout << "wrong shift value " << n << '\n';
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как сделать обработку нажатия комбинации клавиш (например ctrl + n), что-бы после этого выполнялось какое-то действие?
Задача для этой части кода: Если получаемое число меньше первого в векторе, то нужно это число вставить на первое место в векторе, а остальное...
Я объявил кастомную структуру для использования в send/recv