#include <iostream>
int main()
{
unsigned int flags = 482;
unsigned int masks[2]={5,6};
std::cout << flags << std::endl;
std::cout << "Before:";
for (int i = 128; i > 0; i = i / 2)
{
if (flags&i)
{
std::cout << "1";
}
else
{
std::cout << "0";
}
}
std::cout << std::endl;
for (int i = 0; i < 2; ++i)
{
flags &= ~masks[i];
}
std::cout << flags << std::endl;
std::cout << "After:";
for (int i = 128; i > 0; i = i / 2)
{
if (flags&i)
{
std::cout << "1";
}
else
{
std::cout << "0";
}
}
std::cout << std::endl;
std::cin.get();
}
Работает как-то не так... 482 Before:11100010 480 After:11100000
Это позиции битов: unsigned int masks[2]={5,6};
А здесь эти числа используются напрямую flags &= ~masks[i];
int mask = 0;
for (int i = 0; i < 2; ++i)
{
flags &= ~(1 << masks[i]);
}
Все, что вам нужно - построить маску 10011111. Или делайте ее руками
unsigned char mask = 159;
или вычислите:
unsigned char mask = 3;
mask = ~(mask << 5);
Дальше для сброса 5 и 6 бита с байте byte
делаете
byte &= mask;
Виртуальный выделенный сервер (VDS) становится отличным выбором
делаю внутри игровое меню и столкнулся с проблемой, как заблокировать мышь?
Возможно, не совсем понимая что искать, не могу найти действующего примераПроект на C++, разбит на подпапки(src:Engine{Component, Utils}, Process{Objects,
в с++ машина видит char как целочисленный тип и можно просто брать и делать так: