2016-06-20 17 views
-23
struct Physics { 
    static let smallCoin : UInt32 = 0x1 << 1 
    static let smallCoin2 : UInt32 = 0x1 << 2 
    static let ground : UInt32 = 0x1 << 3 
} 

Was dieWas bedeutet, dass jeder Code

UInt32 = 0x1 < < 1 bedeuten?

und statische lassen?

+0

<< bedeutet Verschiebung nach links. –

+0

@AkshanshThakur Da dies eine standardisierte, gut dokumentierte Swift-Syntax ist. –

+2

@SteveIves Ich meine, ich verstehe ... aber er ist neu in SO und vielleicht Swift. warum gib jemandem auf so skrupellose Weise eine schlechte Erfahrung, lol. Könnte ihm erklärt haben, wie funktioniert SO –

Antwort

2

<< ist der Operator der linken Schicht. Sie können besser in binär visualisieren:

1  0000 0001 
<< 1    ^shift this one bit to the left 
---- =  --------- 
    2  0000 0010 


    1  0000 0001 
<< 2    ^shift this two bits to the left 
---- =  --------- 
    4  0000 0100 


    3  0000 0011 
<< 2    ^shift this two bits to the left 
---- =  --------- 
    12  0000 1100 

Eine weitere Eigenschaft, sich daran zu erinnern x << n = x * (2^n) ist. Das Gegenteil von << ist >> - der rechte Schichtbetreiber.

+0

sieht für mich wie eine vollkommen gute Erklärung aus, aber vielleicht von einer der 10 Arten von Menschen downvotiert von verstehen nicht Binär-und Bit-Operationen und ihre Relevanz ... –