将包含按位运算符AND和SHIFT的逻辑表达式分解

时间:2012-04-12 11:19:58

标签: refactoring operators logic bitwise-operators

我有一个这样的逻辑表达式:(A<< k)& (A<< l)其中A是变量,k,l是整数。我想对这个表达式进行分解,这样一个部分只包含A而另一个部分是没有A的部分。换句话说:

(A<< k)& (A<< l)= A op1(任何不包含A的东西)

任何人都可以告诉操作符op1和“(不包含A的任何东西)”是什么?或者这是否可能?

1 个答案:

答案 0 :(得分:2)

我不认为这是可能的,我能做的最好的就是移动其中一个班次

assuming k > l (otherwise switch them)

A & ( A << (k-l) ) << l

但这显然不是你追求的目标