Frage

Ich habe eine Reihe von Nullen und Einsen, die als Liste dargestellt werden, die ursprünglich mit erstellt wurde sample(c(0,1), n, replace=TRUE), wobei n die Länge meiner Binärzahl ist.Ich verwende derzeit einen BCD-Konverter, um meine Binärzahl in eine Dezimalzahl umzuwandeln. Dies ist hier zu sehen:

BCD.to.Decimal <- function(binaryNumb)
{
  binaryLength = length(binaryNumb)
  decimalNumb = 0
  for(i in 1:binaryLength)
  {
    if ( binaryNumb[i] == 1)
      decimalNumb = decimalNumb + 2^(binaryLength - i)
 }

  decimalNumb
}

Ich würde stattdessen gerne einen GrayCode.To.Decimal-Konverter verwenden, der die gleiche Aufgabe erfüllt wie mein BCD.to.Decimal-Konverter, aber stattdessen Gray Code verwendet.

Notiz:Dabei kommt es wirklich auf Geschwindigkeit an, und ich möchte dies auf die effizienteste Art und Weise tun.Ich bin mir bewusst, dass mein BCD-Konverter wahrscheinlich nicht der effizienteste, sondern nur der einfachste ist. Wenn Sie eine deutlich effizientere Methode zur BCD-Konvertierung haben, wäre ich auch daran interessiert, davon zu hören.

Was ist Gray Code?: http://en.wikipedia.org/wiki/Gray_code

War es hilfreich?

Lösung 2

Hier ist die einfache Lösung für meine Frage, der Algorithmus endete viel einfacher als er erschien zuerst.Der verwendete Algorithmus kann gefunden werden hier .

generasacodicetagpre.

Dieser Code konvertiert den Code in Binär, an dem Sie dann eine binäre Konvertierung verwenden können, um ihn in eine Dezimalzahl umzuwandeln.Ich wähle, den von Flodel bereitgestellten Kodex im Abschnitt Kommentare zu verwenden.

generasacodicetagpre.

Andere Tipps

Nun, auf dieser Wiki-Seite gibt es einen Konvertierungsalgorithmus, allerdings in c Sie müssen es also portieren.
Auch auf der Wiki-Seite gibt es diesen Link http://aggregate.org/MAGIC/#Gray%20Code%20ConversionDarin sind eine Reihe von Konvertierungsalgorithmen aufgeführt, von denen die meisten recht einfach zu programmieren erscheinen.

Übrigens, ach was auch immer: GA::grey2binary Und GA::binary2grey existieren bereits.Bah :-)

ETA – Ich hatte das Glück, dies über Mr.Google zu finden, aber im Allgemeinen das Paket sos ist ein großartiges R-Suchtool.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top