已知有 bis 和 bic 两种指令, 两种指令的输入都是一个数据字 x 与一个掩码字 m, 他们生成一个结果 z, z 是根据掩码 m 的位来修改 x 的位得到的.
bis 指令: 在 m 为 1 的每个位置上, 将 z 对应的位设置为 1,
bic 指令: 在 m 为 1 的每个位置上, 将 z 对应的位设置为 1 .
//Declarations of funcionts implementing operations bis and bic
int bis(int x, int m);
int bic(int x, int m);
//Compute x|y using only calls to function bis and bic
int bool_or(int x, int y)
{
int result = bis(x, y)
//or int result = bis(y, x);
return result;
}
//Compute x^y using calls to function bis and bic
int bool_xor(int x, int y)
{
int result = bic(bis(x, y), y);
return result;
}