В коде я иногда вижу, что люди задают константы в шестнадцатеричном формате следующим образом:
const int has_nukes = 0x0001;
const int has_bio_weapons = 0x0002;
const int has_chem_weapons = 0x0004;
// ...
int arsenal = has_nukes | has_bio_weapons | has_chem_weapons; // all of them
if(arsenal &= has_bio_weapons){
std::cout << "BIO!!"
}
Но мне не имеет смысла использовать здесь шестнадцатеричный формат. Есть ли способ сделать это прямо в двоичном формате? Что-то вроде этого:
const int has_nukes = 0b00000000000000000000000000000001;
const int has_bio_weapons = 0b00000000000000000000000000000010;
const int has_chem_weapons = 0b00000000000000000000000000000100;
// ...
Я знаю, что компиляторы C/С++ не будут компилировать это, но должно быть обходное решение? Возможно ли это на других языках, таких как Java?