Ich habe kürzlich den obigen Operator in einem Code gesehen, ich habe danach gegoogelt, aber nichts gefunden. Der Code ist unten. Bitte beschreiben Sie, was dieser Operator eigentlich macht.
#include<stdio.h>
int main()
{
unsigned long int i=0;
char ch;
char name1[20],name2[20];
FILE *fp,*ft;
printf("ENTER THE SOURCE FILE:");
gets(name1);
printf("ENTER THE DESTINATION FILE:");
gets(name2);
fp=fopen(name1,"r");
ft=fopen(name2,"w");
if(fp==NULL)
{
printf("CAN,T OPEN THE FILE");
}
while(!feof(fp))
{
ch=getc(fp);
ch=~((ch^i));/*<--Here*/
i+=2;
if(i==100000)
{
i=0;
}
putc(ch,ft);
}
fclose(fp);
fclose(ft);
return 0;
}
~ in Google suchen? ~, das als Tilde oder Synonymoperator für die Google-Suche bekannt ist. wenn Sie ~search suchen, gibt es überraschenderweise Yahoo 🙂 Sie müssen tidle suchen
– Jadab
21. Oktober 2010 um 4:27 Uhr
Related – Wie funktioniert der bitweise Komplementoperator (~)?
– Bernhard Barker
23. September 2017 um 19:17 Uhr
Hat nichts mit Ihrer Frage zu tun, aber vielleicht möchten Sie lesen, warum while(!feof(fp)) immer falsch ist
– Gerhardh
22. Januar 2020 um 15:28 Uhr
In Silico
Das ~ Operator in C++ (und anderen C-ähnlichen Sprachen wie C und Java) führt a bitweise NICHT-Operation – Alle 1-Bits im Operanden werden auf 0 gesetzt und alle 0-Bits im Operanden werden auf 1 gesetzt. Mit anderen Worten, es wird die erstellt ergänzen der ursprünglichen Nummer.
Zum Beispiel:
10101000 11101001 // Original (Binary for -22,295 in 16-bit two's complement)
01010111 00010110 // ~Original (Binary for 22,294 in 16-bit two's complement)
In deinem Beispiel ch=~((ch^i)) führt ein bitweises NOT auf der aus bitweises XOR von ch und i weist dann das Ergebnis zu ch.
Der bitweise NOT-Operator hat eine interessante Eigenschaft, die bei Anwendung auf Zahlen dargestellt wird durch Zweierkomplementändert es das Vorzeichen der Zahl und subtrahiert dann eins (wie Sie im obigen Beispiel sehen können).
Vielleicht möchten Sie sich damit vertraut machen die verschiedenen Operatoren der Sprache C++ da es schwierig ist, in Suchmaschinen nach Betreibern zu suchen. Besser noch, Sie können sich ein gutes C++-Buch besorgen, das Sie über die C++-Operatoren informiert.
Gibt es eine Suchmaschine, die die Suche nach Symbolen ermöglicht?
– AlcubierreDrive
17. Oktober 2010 um 5:29 Uhr
@ Jon Rodriguez: Keine, die ich kenne. Wenn Sie ein Symbol oder Operatoren für eine bestimmte Programmiersprache suchen müssen, suchen Sie am besten einfach nach der Sprache (z. B. „C++-Programmiersprache“).
– In silico
17. Oktober 2010 um 5:30 Uhr
Es gibt Google-Codesuche aber ich kann nicht für seine Hilfsbereitschaft beim Herausfinden bürgen um Symbole so sehr wie um ihre Anwendungsfälle herauszufinden 😉
– BoltClock
17. Oktober 2010 um 5:31 Uhr
@Jon: Es hilft, wenn Sie den Namen der Glyphe kennen Googl’ing “C-Code-Tilde” wird eine Antwort liefern. Aber andererseits müssten auch “C-Programmiersprachenoperatoren” vorhanden sein – sicher, Sie würden es bekommen alle die Betreiber, aber das ist eng genug, um eine Antwort zu finden, die ich vorschlage!
– Clifford
17. Oktober 2010 um 7:27 Uhr
@Insilico Obwohl die grundlegenden Details Ihrer Antwort korrekt sind, a nicht (!) Operation ist nicht dasselbe wie an umkehren (~) Betrieb. nicht (!) wird bei logischen Ausdrücken verwendet, um das logische Ergebnis zu invertieren, während umkehren (~) wird verwendet, um die Bits einer Variablen zwischen 0 und 1 umzukehren. Die Verwendung von nicht (!) ist auch hardwareabhängig, daher empfehle ich persönlich seine Verwendung nicht. Eine andere Art, an die Verwendung von the zu denken umkehren (~)-Operator ist, dass es funktional dasselbe ist wie doing an Exklusiv oder (^) Ihrer Variablen gegen das Einerkomplement von Null: ~0x81 = 0x81 ^ 0xFF
– Jim fiel
1. Mai 2015 um 19:26 Uhr
Der Operator ~ invertiert alle Bits. So 10000001 wird 01111110.
Erkan Haspulat
Es ist der bitweise Komplementoperator. Angesichts der Eingabe
010011101
gibt die Ausgabe zurück:
101100010
14139900cookie-checkWas macht der Tilde(~)-Operator?yes
~ in Google suchen? ~, das als Tilde oder Synonymoperator für die Google-Suche bekannt ist. wenn Sie ~search suchen, gibt es überraschenderweise Yahoo 🙂 Sie müssen tidle suchen
– Jadab
21. Oktober 2010 um 4:27 Uhr
Related – Wie funktioniert der bitweise Komplementoperator (~)?
– Bernhard Barker
23. September 2017 um 19:17 Uhr
Hat nichts mit Ihrer Frage zu tun, aber vielleicht möchten Sie lesen, warum while(!feof(fp)) immer falsch ist
– Gerhardh
22. Januar 2020 um 15:28 Uhr