位模式检查
bit pattern Check
我有一个非常菜鸟的问题要问你们。
我想写一点检查。
如果两位模式相同,我想写一个布尔值检查。
不幸的是我没有完全理解位检查。
public bool BitPatternCheck(int number, int operand)
{
if (operand >> number != 0)
{
false;
}
}
现在在 Main 方法中我想传递 2 个数字并检查操作数中的所有位是否也出现在数字中。
您需要使用按位与:
(number & operand) == operand
这叫做屏蔽。它将按位和 number
中的每个位与 operand
中的相应位。如果它们都是 1
,则结果数字将在该位置设置位。例如:
number: 001110111
operand: 001100011
result: 001100011
我有一个非常菜鸟的问题要问你们。
我想写一点检查。 如果两位模式相同,我想写一个布尔值检查。
不幸的是我没有完全理解位检查。
public bool BitPatternCheck(int number, int operand)
{
if (operand >> number != 0)
{
false;
}
}
现在在 Main 方法中我想传递 2 个数字并检查操作数中的所有位是否也出现在数字中。
您需要使用按位与:
(number & operand) == operand
这叫做屏蔽。它将按位和 number
中的每个位与 operand
中的相应位。如果它们都是 1
,则结果数字将在该位置设置位。例如:
number: 001110111
operand: 001100011
result: 001100011