0

Bitwise Or 演算子を使用すると、整数 (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 に答える