我有一个任务,我应该在 C++ 中实现 MIPS 处理器,其中一条 MIPS 指令是“AND”和“OR”,MIPS 指令表示为and $s1,$s2,$s3
,这意味着寄存器表示$s1=$s2(and)$s3
为$s2 and $s3
位,,如何我使用 C++ 执行“AND”和“OR”操作?
问问题
401 次
2 回答
6
C++ 中有二元和逻辑 and 和 or 运算符。
int a, b = 1;
int x = a | b; // binary OR
int x = a & b; // binary AND
bool x = a || b; // boolean OR
bool x = a && b; // boolean AND
于 2011-06-06T00:17:23.697 回答
0
布尔比较将根据两个操作数的值返回真或假。如果两个操作数都不为零,则逻辑“and”将返回 true。只有当两个操作数都为假时,逻辑“或”才会返回假。
位运算符是不同的,它们对操作数的位进行操作。仅当两个对应位都为真时,位明智的“和”才会将一个位设置为真:
101 & 110 = 100
仅当两个对应位都为零时,按位“或”才将位设置为零:
010 | 001 = 011
这两个按位比较运算符与移位运算符(<< 和 >>)和补码运算符(~)的关系更密切,因为它们是低级运算。
于 2011-06-06T00:26:12.417 回答