输入三个整数,n,标记和标记。
如果flag = 0则
return ((n & tag) == tag);
如果标志!= 0那么
return ((n & tag) != tag);
理想情况下,如果没有if语句,我想要一些简单的东西。
答案 0 :(得分:1)
您可以将旗帜转换为布尔值。在C ++中:
bool b_flag = flag;
return !b_flag * ((n & tag) == tag) + b_flag * ((n & tag) != tag);
或者您可以使用三元运算符。
答案 1 :(得分:1)
如果flag可以转换为bool,可以简化为:
return !(flag ^ ((n & tag) == tag))