我有一个任务,我应该用C ++实现MIPS处理器,其中一个MIPS指令是“AND”和“OR”,MIPS指令表示为and $s1,$s2,$s3
,这意味着{{1 } $s1=$s2(and)$s3
寄存器表示为位,,,如何使用C ++执行“AND”和“OR”操作?
答案 0 :(得分:6)
C ++中有二元和逻辑和和或运算符。
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
答案 1 :(得分:0)
布尔比较将返回true或false,具体取决于两个操作数的值。如果两个操作数都非零,则逻辑“和”将返回true。仅当两个操作数均为假时,逻辑“或”才会返回false。
按位运算符是不同的,并对操作数的位进行操作。只有当两个相应的位都为真时,有点“和”才会将某个位设置为真:
101 & 110 = 100
只有当两个相应的位都为零时,按位“或”才将位设置为零:
010 | 001 = 011
两个按位比较运算符与移位运算符(<<>>)和一个补码运算符(〜)更紧密相关,因为它们是低级别运算。