2017-06-06 4 views
0
// 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 funktionieren die logischen und bitweisen Operatoren?Die bitweisen Operatoren sollten nicht anstelle von logischen Operatoren verwendet werden

+0

Ausgabe: False und True –

+0

Verwandte, [Bedingte Anweisung mit Bitwise-Operatoren] (https://Stackoverflow.com/q/10034470/608639) und [Wie funktioniert die Bedingungserklärung mit bitweisen Operatoren?] (Https: //stackoverflow.com/q/13054401/608639) – jww

+0

@manjunathhiremath ist dein Problem gelöst? –

Antwort

3

In diesem Programm & ist ein bitweise Operator, der auf 2 und 5.

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

bitweise and Betriebe tut So wird die erste Zeile False, während zweiten druckt normale and Bediener beiden Werte, für die sind wahr (Zahlen ungleich Null), so dass 2 && 5 zu true führt und die Ausgabe True ist.

+0

@ Vishwajeet Vishu Zweifel ist cleared.Thank Sie –

+0

@manjunathhiremath Ihr Willkommen können Sie meine Antwort annehmen –

0

Der bitweise AND-Operator ist ein einzelnes Et-Zeichen: &. Ein praktisches Mnemonic ist, dass die kleine Version des booleschen AND, & &, auf kleineren Stücken funktioniert (Bits statt Bytes, Zeichen, Ganzzahlen usw.). Im Wesentlichen nimmt ein binäres AND einfach das logische UND der Bits in jeder Position einer Zahl in binärer Form an.

Beispiel für & (und):

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

bit- oder arbeitet fast genau die gleiche Art und Weise wie bitweise AND. Der einzige Unterschied ist, dass nur eines der beiden Bits eine 1 sein muss, damit das Bit dieser Position im Ergebnis 1 ist. (Wenn beide Bits eine 1 sind, hat das Ergebnis auch eine 1 in dieser Position.) Das Symbol ist eine Pfeife: |. Dies ist wiederum ähnlich dem booleschen logischen Operator, der || ist.

Beispiel für | (OR):

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

Es gibt kein Booleschen Operator Gegenstück bitweise Exklusiv-Oder, aber es gibt eine einfache Erklärung. Die Exklusiv-Oder-Operation nimmt zwei Eingaben und gibt eine 1 zurück, wenn entweder die eine oder die andere der Eingaben eine 1 ist, aber nicht, wenn beide vorhanden sind. Das heißt, wenn beide Eingänge 1 sind oder beide Eingänge 0 sind, gibt es 0 zurück. Bitweise Exklusiv-Oder, mit dem Operator eines Caret, führt die Exklusiv-ODER-Operation an jedem Bitpaar aus. Exklusiv - oder wird üblicherweise als XOR abgekürzt.

Beispiel für^(XOR):

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

Wenn Sie in eine Bitoperatoren erhalte ich Sie einen Stift und Papier erhalten vorschlagen, 2 zufällige 8-Bit-Zahlen vorstellen, und sie alle auf Papier arbeiten (alle bitweisen Operationen). Dann können Sie einen Programmierrechner finden und Ihr Ergebnis überprüfen.

+0

Vielen Dank ....... –

+0

Kein Problem, wenn Sie mehr Hilfe brauchen, zögern Sie nicht zu fragen.Ich werde mehr als glücklich, Ihnen zu helfen.Auch wenn Sie meine Antwort hilfreich fanden, würde ich mich sehr freuen, wenn Sie meine Antwort aufwerten. Vielen Dank. – du4ko

Verwandte Themen