#include <iostream>
using namespace std;
int same_or(int perm1,int perm2)
{
int tmp=perm1>perm2 ? perm1:perm2;
int n=0, refer=~0, value;
while(tmp>>n)
n++;
refer<<=n;
tmp=perm1&perm2;
perm1=~(perm1|refer); //排除perm1高位上无效bit的干扰,如排除0001 1111的前面3个0
perm2=~(perm2|refer); //同上
value=perm1&perm2;
return value|tmp;
}
int main()
{
int c=same_or(4,5);
cout<<c<<endl;
return 0;
}