<< oder >> ?
-
Was passirt bei dem Funktionen so genau ?
Bsp.
int a=2;
a = a << 3;
cout<<a;Wieso kommt da 16 raus !? Kann mir jemand erklären wie das funktioniert ?
-
angewandt auf ganze Zahlen sind << bzw. >> bit-shift Operationen. Um das zu verstehen rechnest Du die Zahl einfach mal in binär um. Wenn Du verschiebst mußt Du mit 0en auffüllen.
Das Beispiel mit 2<<3:
(d = dezimal, b = binär)2(d) = 10(b)
10(b) << 3 = 10000(b) (wir schieben nach links und füllen recht mit 0en auf).
Und das ist wiederum = 16(d).MfG Jester
-
2 ist in binärzahlen 10. 10 um drei stellen nach links verschoben ist 10000.(die nullen werden aufgefüllt) und 10000 in dez ist 16.
/edit: ups, da war einer schneller...
-
<< und >> sind die Shift-Operatoren.
Bei cout und cin haben die zB. aber andere Bedeutungen, da sie in dem Fall überladen sind.
<edit>zu langsam</edit>
-
Das mit dem << hab ich jetzt verstanden aber was passirt bei >> ?
-
Das gleiche, nur werden die Bits nach rechts geschoben. Bits die über den Rand geschoben werden fallen weg.
3 >> 1:
3(d) = 11(b)
3 >> 1 = 1(b) (letzte 1 fällt weg)
= 1(d)MfG Jester