-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfuncs11.cpp
More file actions
21 lines (16 loc) · 752 Bytes
/
funcs11.cpp
File metadata and controls
21 lines (16 loc) · 752 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Функция для выполнения побитного сдвига числа вправо на указанное количество нечётных битов
void oddBitRightShift(unsigned long long int & number, int numBits)
{
// Создаем маску для выбора только нечётных битов
unsigned int mask = 0x55555555; // 0x55555555 представляет шаблон 01010101010101010101010101010101
// Выполняем побитное И между числом и маской, чтобы выбрать только нечётные биты
unsigned int oddBits = number & mask;
// Выполняем сдвиг нечётных битов вправо
unsigned int shiftedBits = oddBits >> numBits;
// Обновляем исходное число, заменяя нечётные биты на сдвинутые нечётные биты
number = (number & ~mask) | shiftedBits;
<<<<<<< HEAD
}
=======
}
>>>>>>> 07f38bcb5a8691e0f9da8b0e3934363f1fd0a694