1

我有一个任务,我应该在 C++ 中实现 MIPS 处理器,其中一条 MIPS 指令是“AND”和“OR”,MIPS 指令表示为and $s1,$s2,$s3,这意味着寄存器表示$s1=$s2(and)$s3$s2 and $s3位,,如何我使用 C++ 执行“AND”和“OR”操作?

4

2 回答 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 回答