有没有办法使用位初始化char?

Vin*_*ive 2 c++

我试图代表一副扑克牌中的52张牌.我需要总共6位; 2为西装,4为排名.我以为我会使用char并且前两位为零,因为我不需要它们.问题是我不知道是否有办法使用位初始化char.

例如,我想做的是:

char aceOfSpades = 00000000;

char queenOfHearts = 00011101;

我知道一旦我初始化了char,我可以操作这些位,但如果我可以从头开始初始化它会更容易,如我的例子所示.提前致谢!

bhz*_*zag 6

是的你可以:

例,

  char aceOfSpades = 0b00000000;
  char queenOfHearts = 0b00011101;
Run Code Online (Sandbox Code Playgroud)

  • 兼容性要小心.[这](http://stackoverflow.com/questions/2611764/can-i-use-a-binary-literal-in-c-or-c)说这个'0b`格式是gcc的GNU扩展并添加到C++ 14.十六进制的"0x"格式从一开始就存在.如果你使用它足够多,你会习惯比特的位置:1,2,4,8等. (8认同)