Как я могу реализовать операции И и ИЛИ в C ++ - PullRequest
1 голос
/ 06 июня 2011

У меня есть задание, согласно которому я должен реализовать процессор MIPS на C ++, и одной из инструкций MIPS является «И» и «ИЛИ», инструкция MIPS представляется как and $s1,$s2,$s3, что означает, что $s1=$s2(and)$s3 the $s2 and $s3 регистры представлены в битах ,, как я могу выполнять операции «И» и «ИЛИ» с помощью C ++?

Ответы [ 2 ]

6 голосов
/ 06 июня 2011

В 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
0 голосов
/ 06 июня 2011

Логическое сравнение вернет true или false в зависимости от значения двух операндов. Логические «и» вернут истину, если оба операнда отличны от нуля. Логическое «или» вернет ложь, только если оба операнда ложны.

Битовые операторы различны и работают с битами операндов. Немного мудрый "и" установит бит в true, только если оба соответствующих бита верны:

101 & 110 = 100

Побитовый "или" устанавливает бит в ноль, только если оба соответствующих бита равны нулю:

010 | 001 = 011

Два побитовых оператора сравнения более тесно связаны с операторами сдвига (<< и >>) и оператором дополнения (~) в том смысле, что они являются операциями низкого уровня.

...