2016-06-11 7 views
-6

Ich kam acrros dieser Zeile:Java - was bedeutet 0xXXXc?

int b = (0x001c >> 1) 

Und ich weiß nicht, was diese kleine c neben 0x001 Mittel. Ich weiß, dass 0x für hex ist, aber ich habe diesen c nie zuvor ..

Dank

+8

Bist Du sicher nicht nur die hexadezimale Ziffer C ist? – Arc676

+0

ja du mein Fehler richtig. – Noam

Antwort

0

In der Basis 10 sind zehn Ziffern gesehen: 0, 1, 2, 3, 4, 5, 6 , 7, 8, 9

in der Basis 2, gibt es nur zwei: 0, 1

in hexadezimal (Basis 16), gibt es 16: 0-9, und a, b, c, d, e & f. Manchmal wird der Großbuchstabe verwendet: beiden geht es gut.

So 0x001c bedeutet 0x1 x 16 + 0xc x 1 = 16 + 12 = 28

0

Das hier

kann analysiert werden als:

  1. int b ist eine Variable des Typs Integer-Zahl mit dem Namen b erklärt, diese auf dem gleichen Wert wird initialisiert ...
  2. 0x001c ist eine Zahl, aber in einer hexadecimal format
  3. vertreten
  4. die >> ist ein shift operator

so b mit dem Ergebnis der Operation initialisiert 0x001c >> 1 bald oder später werden Sie feststellen, dass dieser Vorgang nur durch eine Division 2 ist

zusammenfassend:

Diese Linie einen Integer-Variable schafft mit dem Wert 14

1

Die die C ist initialisiert hexadezimal C das ist 12 (in Dezimal).

In Ihrem Fall, 0x001C verschoben um 1.

Mit anderen Worten 28 (in Dezimal), um 1 Stelle nach rechts verschoben wäre 14 (in Dezimal).

In binär,

0...00 00011100 >> 00000001

gibt ..

0...00 00001110(in binary)

Welche ist: 14 (dezimal) oder E (in hex)