2013-11-26 4 views
5

fand ich ein paar Zeilen in Äpfeln Beispielcodes für SpriteKitBitte erläutern uint32_t und 0x1 << 0 Apple SpriteKit Beispielcode

static const uint32_t missileCategory = 0x1 << 0; 

Ich weiß, was static const ist, aber was ist ein uint32_t und was bedeutet 0x1 << 0 Mittelwert ? ist es eine Art Hex?

+4

sein 'uint32_t' ist ein Name für einen vorzeichenlosen 32-Bit-Integer-Typ. '0x1 << 0 'ist um 1 nach links null-mal verschoben, was von sich aus albern ist, aber höchstwahrscheinlich gibt es eine' 0x1 << 1 'in der nächsten Zeile und mehr darüber. Dies weist den Konstanten in dieser Gruppe Bitpositionen zu. –

+0

(Dies ist ein sehr häufiges Muster in C-basierten Sprachen.) –

+0

http://Stackoverflow.com/questions/13362084/difference-between-uint32-and-uint32-t – Retro

Antwort

6

<< ist bitwise left shift (Multiplikation mit 2) Operator.

<< 0 ist die gleiche wie *1

So gleichwertige Aussage wäre:

static const uint32_t missileCategory = 0x1; 

ich mehr zu diesem here schrieb.

Zum Beispiel:

0x1 << 4 würde 0x10 zurückzukehren.

Betrachtet man es binär:

00000001 << 4 = 00010000 

Decimaly sprechen würde dies bedeuten, 1 * 2 * 2 * 2 * 2 oder 1 * 2^4

Und da dieser uint32_t Wert ist, würde es actualy

0x00000010 
+0

Ich denke, ich habe jetzt den Dreh raus, Danke für die Erklärung :) – Arbitur

+0

Kein Problem. Es kann schwierig sein, es das erste Mal zu sehen :) –