Ich schrieb einen C-Code für eine Aufgabe in der Schule und stieß auf einen Fehler, der mich wirklich überhäufte. Unten ist das Code-Snippet, das Probleme verursacht hat.Was ist der Unterschied zwischen <und << in C?
int i, result = 1;
for(i = 0; i < n; i++)
{
if(a[i]<< 15 || a[i] >> 50)
result = 0;
}
Jedes Mal, wenn ich versuchte, mein Programm zu laufen, würde ich eine Warnung, dass 50 für meinen Datentyp zu groß war. Da ich weiß, dass ich einen int-Typ verwende und die Zahl 50 leicht in einem int gespeichert werden kann, ging ich davon aus, dass ein Wert unter 32 erwartet wurde, da int ein 32-Byte-Typ ist. Ich habe versucht, die Nummer 20 anstelle von 50 und habe keine Fehler. Ich habe dann die doppelten "<" und ">" Marken durch Singles ersetzt und der Code hat perfekt funktioniert. Ich habe mich gefragt, ob irgendjemand etwas darüber sagen könnte, warum das der Fall war? Ich bin neu in C und habe gerade im Dunkeln geschossen, dass die zusätzlichen "<" und ">" Symbole das Problem waren, aber ich würde gerne wissen, warum es funktioniert hat!
Die eigentliche Frage ist, warum sollten Sie versuchen, mit >> oder << zu vergleichen. Aber Sie können Operatoren in C in jedem Buch oder Tutorial nachschlagen und sehen, was sie in einer Sekunde tun. –