Bitmask 如何确定此位掩码代码的作用
我是一名编程方面知识很少的讲师,但需要一些来自测试的常见编程问题的帮助,这些问题我无法理解。问题内容如下: 参考第004行;表达式“value&1”执行以下哪项操作Bitmask 如何确定此位掩码代码的作用,bitmask,Bitmask,我是一名编程方面知识很少的讲师,但需要一些来自测试的常见编程问题的帮助,这些问题我无法理解。问题内容如下: 参考第004行;表达式“value&1”执行以下哪项操作 001 unsigned int bitCount (int value) { 002 unsigned int count = 0; 003 while (value > 0) { //until all bits are zero 004 if ((value
001 unsigned int bitCount (int value) {
002 unsigned int count = 0;
003 while (value > 0) { //until all bits are zero
004 if ((value & 1) ==1) { //check lower bit
005 count++;
006 }
007 value >>1;
008 }
009 return count;
010 }
- 屏蔽除lsb之外的所有位
- 仅屏蔽msb
- 屏蔽除msb之外的所有位
- 仅屏蔽lsb
&
运算符执行按位AND运算。换句话说,它逐位遍历这两个数字,并且仅当两个输入位都为1时,才将答案的对应位设置为1
在二进制中,数字1是000…00001,换句话说,它只有一个在最低有效位位置。因此,当您使用它时,答案中的所有内容都将为零,除了可能的最低有效位位置,只有当其他输入在该位置有1时,该位置才为1
另外,在您的程序中,007行可能不符合您的要求。看起来您将值
向右移动了一位,但是没有保存移动的结果。也许您想编写类似于value=value>>1
的代码,以便它实际修改value
变量