Warum ist 31 == 6 in Python? [Duplikat]

8

Jeder kann mir diesen Operator erklären & lt; & lt; oder & gt; & gt;

    
elgianka 12.10.2010, 18:45
quelle

4 Antworten

32

Die Operatoren << und >> sind Bitshift-Operatoren . x << 1 verschiebt alle Bits in x auf das nächsthöchstwertige Bit und multipliziert effektiv mit 2. Ganz allgemein verschiebt x << n die Bits um n Positionen nach oben. Um zu verstehen, wie diese Operation funktioniert, ist es am einfachsten, sich die Binärdarstellung anzusehen:

%Vor%

Ähnlich verschiebt der Operator >> die Bits nach unten:

%Vor%     
Mark Byers 12.10.2010, 18:47
quelle
15

3, binär, ist 11 und wird nach links verschoben, ein Bit ist 110 oder 6 in Dezimal.

Denken Sie an a << b als a * (2 ** b)

>> ist für Rechtsverschiebung. Denken Sie an a >> b als a // (2 ** b)

    
Gabi Purcaru 12.10.2010 18:46
quelle
4

Es ist ein Schichtoperator.

Ссылка

    
Júlio Santos 12.10.2010 18:47
quelle
4

Es ist ein bisschen Verschiebung, indem Sie eine Verschiebung verwenden.

Nehmen wir an, Sie haben eine Nummer, und wenn Sie sich die niedrigsten Bits ansehen, haben Sie 3:

0 0 1 1

Wenn du es verschiebst, bekommst du 6 oder:

0 1 1 0

    
Reed Copsey 12.10.2010 18:47
quelle