在代码中,我有时看到人们使用十六进制格式指定常量,就像这样:
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/C++编译器不会编译这个,但一定有解决办法吧?在其他编程语言,像Java里面行得通吗?