Добрый вечер всем форумчанам. Нуждаюсь в вашей помощи т.к начал работать с битсуммами.
Положение у меня таково
Имеется небольшой кусочек кода
Проблема вот в чем
Пытаясь поработать с данными препроцессорами не понял как их использовать
Либо на отрицание брать препроцессор ResetBit либо использовать с отрицанием GetBit
Может кто-то подробнее объяснить эту всю кашу с битами?
Работу побитовых операторов знаю.
Положение у меня таково
Имеется небольшой кусочек кода
C++:
Три препроцессорника
#define GetBit(%1,%2) (%1 & (1 << (%2 & 31)))
#define SetBit(%1,%2) (%1 |= (1 << (%2 & 31)))
#define ResetBit(%1,%2) (%1 &= ~(1 << (%2 & 31)))
Небольшое условие
if(!is_user_connected(id) || !is_user_alive(id)) {
Тут часть кода
}
else {
Тут часть кода
}
Пытаясь поработать с данными препроцессорами не понял как их использовать
Либо на отрицание брать препроцессор ResetBit либо использовать с отрицанием GetBit
C++:
Три препроцессорника
#define GetBit(%1,%2) (%1 & (1 << (%2 & 31)))
#define SetBit(%1,%2) (%1 |= (1 << (%2 & 31)))
#define ResetBit(%1,%2) (%1 &= ~(1 << (%2 & 31)))
Небольшое условие
if(/*Либо ResetBit*/!(GetBit(g_BitsIsUserConnected, id)) || /*Либо ResetBit*/!(g_BitsIsUserAlive, id)) {
Тут часть кода
}
else {
Тут часть кода
}
Работу побитовых операторов знаю.