/ / Die bitweisen Operatoren sollten nicht anstelle von logischen Operatoren verwendet werden - c, bitweise Operatoren, ternäre Operatoren

Die bitweisen Operatoren sollten nicht anstelle von logischen Operatoren verwendet werden - c, bitweise Operatoren, ternäre Operatoren

//  How does this program work with ternary operator
#include <stdio.h>
int main()
{
int x = 2, y = 5;
(x &  y) ? printf("True ") : printf("False "); // How do we get output
(x && y) ? printf("True ") : printf("False ");
return 0;
}

Wie funktioniert dieses Programm? Wie arbeiten die logischen und bitweisen Operatoren?

Antworten:

3 für die Antwort № 1

In diesem Programm & ist ein bitweiser Operator, der bitweise funktioniert and Betrieb an 2 und 5.

0000 0010<=2
0000 0101<=5
0000 0000<=output

Die erste Zeile wird also gedruckt False. während der zweite normal ist and Operator, für den beide Werte wahr sind (keine Nullzahlen) 2 && 5 führt zu true und die Ausgabe wird sein True.


0 für die Antwort № 2

Der bitweise AND-Operator ist ein einzelnes kaufmännisches Und: &. Ein praktischer Gedanke ist, dass die kleine Version des booleschen AND & & mit kleinen Stücken arbeitet (Bits anstelle von Bytes, Zeichen, Ganzzahlen usw.). Im Wesentlichen nimmt ein binäres UND einfach das logische UND der Bits an jeder Position einer Zahl in binärer Form auf.

Beispiel für & (und):

00000010 & //2
00000101 = //5
--------
00000000   // 0

Bitweises ODER funktioniert fast genauso wiebitweises AND. Der einzige Unterschied besteht darin, dass nur eines der beiden Bits eine 1 sein muss, damit das Bit dieser Position im Ergebnis 1 ist Das Symbol ist eine Pipe: | Auch dies ist dem booleschen logischen Operator ähnlich, der || ist.

Beispiel für | (ODER):

00000010 | //2
00000101 = //5
--------
00000111 //7

Es gibt kein boolesches Operator-Gegenstück zubitweises Exklusiv-Oder, aber es gibt eine einfache Erklärung. Die Exklusiv-Oder-Operation nimmt zwei Eingaben auf und gibt eine 1 zurück, wenn eine der beiden Eingaben eine 1 ist, aber nicht, wenn beide sind. Das heißt, wenn beide Eingänge 1 oder beide Eingänge 0 sind, wird 0 zurückgegeben. Bitweises Exklusiv-Oder führt mit dem Operator eines Caret-Zeichens ^ die Exklusiv-Oder-Operation für jedes Bitpaar aus. Exklusiv-oder wird üblicherweise als XOR abgekürzt.

Beispiel für ^ (XOR):

00000010 ^ //2
00000101 = //5
--------
00000111 //7

Wenn Sie in einen bitweisen Operator geraten, schlage ich Sie vorHolen Sie sich Stift und Papier, stellen Sie sich 2 zufällige 8-Bit-Zahlen vor und bearbeiten Sie sie alle auf Papier (alle bitweisen Operationen). Dann können Sie einen Programmer-Rechner finden und Ihr Ergebnis überprüfen.