Hexadezimal zu DezimalHallo ,
Ich habe eine Kundenanfrage zum Importieren von Dateien mit vielen erhalten Hexadezimale Spalten. zB 0xeadf, 0xffdb;
Wenn wir in JMP13 die Daten einfach in JMP einfügen/importieren, wandelt JMP diese Hex-Spalten automatisch in fortlaufende Daten um, z. B. 65499, 60127 ...
während sie beim Upgrade auf JMP14* , Die Hexadezimalspalten bleiben als Zeichen wie „0xeadf“ erhalten, auch wenn das Präfix „0x“ entfernt wird, bleibt es erhalten.
foumular Hex zu Zahl (:Spaltenname) Funktioniert nur für neu erstellte fortlaufende Spalten , aber nicht für vorhandene Hex-Spalten
-> Dies wird das Kundenproblem nicht lösen, da viele Hex-Spalten vorhanden sind. zu behandeln (JMP15 ist das gleiche Verhalten wie JMP14)
Anbei 2 Bilder

Fragen:
1): Welche unterschiedlichen Einstellungen kann der Benutzer in JMP13 und JMP14 konfigurieren?
2): Wenn Q1 nicht möglich ist, hat jemand eine Idee, mit dieser Situation umzugehen?
Vielen Dank für jeden Gedanken und jede Idee, ich wünsche Ihnen einen schönen Freitag 
Stift
Betreff: Hexadezimal zu Dezimal@andreacoombs1 , tut Hex zu Zahl() Ihnen geben, was Sie suchen?

Betreff: Hexadezimal zu Dezimal@brady_brady Ich habe heute mit IBM gesprochen und dieses Konvertierungstool ist genau das, was sie brauchten.Sie konvertieren zwischen Basis 10 und 16. Irgendwelche Aktualisierungen dazu – Wurde alles in ein Add-In konvertiert?Ist die Funktion nativ in der Software verfügbar?
Ich konnte Hex to Number() und Hex() verwenden, um diese Konvertierung durchzuführen. (siehe Anhang)
Betreff: Hexadezimal zu DezimalHallo Pin und Don,
Ich weiß, dass ich zu spät zu dieser Diskussion komme, möchte aber hinzufügen, dass ich mir schon immer eine Basiskonvertierungsfunktion in JMP gewünscht habe. Unten finden Sie ein Tool, das ich vor einiger Zeit geschrieben habe, um zwischen zwei beliebigen ganzzahligen Basen, einschließlich Basis 2 und Basis 36, zu konvertieren.
Die Funktionsaufrufspezifikation lautet:
b1Tob2 (n(string), b1(number), b2(number)) -> result(string)
Es wird davon ausgegangen, dass alle Werte korrekt angegeben sind (d. h. die Zahl 376 kann nicht zur Basis 5 verwendet werden, da Ziffern größer als 5 in der Basis 5 nicht verwendet werden). Wie Pin erwähnt, kann vor der Anwendung der Funktion eine Vorverarbeitung (z. B. Entfernen von „0x“) erforderlich sein.
Unten sehen Sie den Code für die Verwendung des Tools in einer Formelspalte. Alles, was geändert werden muss, ist die letzte Zeile, damit sie mit den Spaltennamen der Tabelle übereinstimmt, und die Formel sollte weiterhin mit der von Don beschriebenen Prozedur „Attribute standardisieren“ funktionieren. Dies könnte leicht in ein Add-In umgewandelt werden und einen interessanten Blog ergeben. Vielleicht werde ich das irgendwann tun.
Ich habe auch einen Screenshot der verwendeten Formel beigefügt und eine Beispieltabelle angehängt.
Beifall,
Brady
names default to here(1);
decToB = Function( {n, b},
{a, s},
s = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
n = Num( n );
a = "";
While( n >= 1,
a = Substr( s, Mod( n, b ) + 1, 1 ) || a;
n = Floor( n / b );
);
a;
);
bToDec = Function( {n, b},
{s},
s = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
c = 0;
n = Char( n );
For( i = 1, i <= Length( n ), i++,
a = (c + Contains( s, Substr( n, i, 1 ) )) - 1;
c = a * b;
);
a;
);
b1Tob2 = Function( {n, b1, b2},
{default local},
n = Char( n );
decTob( btoDec( n, b1 ), b2 );
);
b1Tob2( :Number, :Original Base, :New Base );

Betreff: Hexadezimal zu DezimalVielen Dank, Don.@DonMcCormack
Ihre Lösungen funktionieren mit nur einer kleinen Änderung gut: Ersetzen Sie zuerst das Präfix „0x“. (JMP14, JMP15 funktioniert auf die gleiche Weise )
Ich denke, Sie verwenden Workaround-Lösungen, um entsprechende kontinuierliche Spalten zu erstellen. -> damit die Formel „Hex zu Zahl“ später in der Formelstandardisierung funktionieren kann
(Haha, ich hoffe, unser Entwickler könnte dafür sorgen, dass die Formel „Hex zu Zahl“ in Zukunft möglichst direkt auf diesen Hex-Spalten funktioniert
)

Jetzt haben wir also die ursprünglichen Hex-Spalten. + ihre jeweiligen fortlaufenden Spalten mit dem Namen z. B. Länge[FG0]
(Es liegt an der Benutzereinstellung, den Header-Namen zu ändern
)
Danke noch einmal. Wünsche dir eine gute Reise, bis bald ~
Betreff: Hexadezimal zu DezimalStift,
Was mir aufgefallen ist, ist, dass das Kopieren und Einfügen in JMP 13 nicht unbedingt die richtigen Ergebnisse liefert. Die beigefügte Excel-Arbeitsmappe enthält drei Sätze identisch bewerteter Spalten, wobei die letzten beiden Sätze Hexadezimaldarstellungen sind. Das Einfügen des letzten Spaltensatzes führt nicht zu den gleichen Ergebnissen wie der erste Satz, sollte aber dennoch erzielt werden. Ich bin mir nicht sicher, ob die Entwicklung sich dessen bewusst war und das Verhalten zwischen 13 und 14 geändert hat. Unabhängig davon würde ich aus diesem Grund in den Versionen 13 und älter kein Kopieren und Einfügen verwenden. Eine relativ einfache Lösung ist:
- Wählen Sie die Spalten mit den Hexadezimalwerten aus, klicken Sie mit der rechten Maustaste und wählen Sie „Neue Spaltenformel“ > „Zeichen“ > „Länge“.
- Wählen Sie die neu erstellten Spalten aus und gehen Sie zu Spalten > Attribute standardisieren.
- Wählen Sie Attribute standardisieren > Formel aus. Bearbeiten Sie die Formel und ersetzen Sie „Länge“ durch „Hex zu Zahl“.
- Aktivieren Sie das Kontrollkästchen „Spaltenreferenz ersetzen“ (dies ist wichtig).
- Klicken Sie auf Übernehmen
Dadurch sollten die Spalten in ihre korrekten Werte konvertiert werden. Hoffe das hilft.
Anziehen