迭代char的位数

Ham*_*aya 6 java bit-manipulation

假设我有char"C",其ascii代码是0110 0111.我怎样才能迭代它的位?我想从这些1和0构建一个向量....

Jac*_*ack 13

您可以使用按位运算符轻松迭代它们:

char c = 'C';
for (int i = 0; i < 8; ++i)
{
  // extract the i-th bit
  int b = ((c & 1<<i) >> i);
  // b will be 1 if i-th bit is set, 0 otherwise

  // do whatever you want with b
}
Run Code Online (Sandbox Code Playgroud)

你可以优化它(如评论中所建议):

int b = ((c >> i) & 1);
Run Code Online (Sandbox Code Playgroud)

  • 是的,但是downvote总是很诱人:) (3认同)
  • 我会去(c >> i)&1 (2认同)