2016-06-30 12 views
0

Vor kurzem über eine Frage -Konvertieren kam eine Reihe von dezimal in binär

eine Dezimalzahl konvertieren (Basis 10) in binärer Zahl (Basis 2), aber nicht so, wie wir es normalerweise tun. Der Algorithmus ist von uns werden gemustert, basierend auf der folgenden data--

0 = 000

1 = 001

2 = 011

3 = 010

4 = 110

5 = 111

6 = 101

7 = 100

13 = 1011

ich wirklich hart versucht, mit einem Algorithmus zu kommen, konnte aber nicht. Kann jemand an eine Lösung denken?

+0

Ich denke, 6 = 101 und 7 = 100 sind nicht richtig. Pair-Nummern sollten mit einer 0 und Nicht-Pair-Nummern mit einer 1 enden !! Dies scheint zunächst keinen Sinn zu haben - könnte der Grund sein? –

+3

Es heißt "Gray Code", finden Sie die Antwort hier: http://StackOverflow.com/Questions/28841322/Convert-Decimal-To-Gray-Code-in-Java –

+0

Nizza, Danke! Wusste nicht über !! –

Antwort

0

Das Interessanteste an Ihren Conversions ist, dass sich aufeinanderfolgende Zahlen um eine Ziffer unterscheiden. Dies ist charakteristisch für Gray code.

Weitere Informationen finden Sie unter wikipedia oder Geeks4geeks.

Algorithmus:

  • schreibt binäre Darstellung der Zahl
  • Shift-Recht, es Kopie ist (letzten Bit entfernen - es verlieren).
  • XOR alle Bits. Es wird Gray-Code zurückgeben.
+0

Ja. Dieses Ding wurde auch in der Frage erwähnt, dass aufeinanderfolgende Binärdarstellungen sich um ein Bit unterscheiden. Ich hatte keine Ahnung von Gray Code. Aber ich frage mich immer noch, wie ich dieses Problem lösen würde, wenn man noch nie von Gray-Code gehört hätte: – ankitG

+0

Frag Grey :) Ich habe den einfachsten Algorithmus hinzugefügt, um den Gray-Code der Nummer zu finden. Machen Sie sich keine Sorgen, bei jedem CS-Studium würden Sie Gray-Code lernen. – xenteros