0

使用按位或运算符,您可以将整数(例如 2 的幂的整数)相互组合,然后检查返回的 int 是否包含指定值。但是有没有一种正确的方法可以从返回的整数中删除值而不合并一个新的值?

目前我从组合整数中减去我想要删除的值,但这是否工作正常或会导致问题?还是有更多“正确”的方式来做到这一点?

这是我的代码:

private void button1_Click(object sender, EventArgs e)
{
    int combinedints = CombineIntegers(CombineIntegers(2, 8), 32); //Combine three integers.
    MessageBox.Show(combinedints.ToString()); //Shows 42.
    MessageBox.Show(RemoveInteger(combinedints, 8).ToString()); //Removes 8 - shows 34.
}

private int CombineIntegers(int a, int b)
{
    return a | b;
}

private int RemoveInteger(int a, int b)
{
    return a -= b;
}

private bool CheckInteger(int a, int b)
{
    return (a & b) == b;
}
4

1 回答 1

3
private int RemoveInteger(int a, int b)
{
    return a & ~b;
}
于 2015-07-11T15:57:57.233 回答