Benötigen Sie ein Skript, um ein einzelnes Bit in einem 8-Bit-Code zu lesenHallo, ich habe versucht, einen Weg zu finden, ein Bit in einem 8-Bit-Code (Spalte RegRead) zu lesen, um eine neue Spalte zu erstellen.
Ich kann nicht scheinen zu wissen, um es zu tun. In diesem Beispiel unten versuche ich, bit[3] fertig zu machen, kann jemand dabei helfen
sehr geschätzt.
Strahl

DatentabelleBetreff: Benötigen Sie ein Skript, um ein einzelnes Bit in einem 8-Bit-Code zu lesenSehen die Daten in einer JMP-Datentabelle so aus? Ist die Spalte eine Zeichenspalte oder eine numerische Spalte? Es gibt mindestens 3 verschiedene Möglichkeiten:
Wenn die Daten bereits Zeichen sind, "1" und "0", dann sollte die substr()-Funktion in der Lage sein, das 5. Zeichen zu erfassen (vorausgesetzt, die führenden "0"-Zeichen sind vorhanden.) Testen Sie sorgfältig; Wenn Sie das LSB-Bit 0 vs. Bit 1 aufrufen, ändert sich die Antwort, und substr beginnt bei 1, nicht bei 0.
Wenn der Wert eine Zahl ist, die seltsamerweise eine Zahl zur Basis 10 anzeigt, die wie eine Zahl zur Basis 2 aussieht, (1) möchten Sie sie möglicherweise erneut als Zeichen importieren oder (2) Sie können mod(floor(RegRead/1000) verwenden. 2).
Wenn der Wert eine Zahl zwischen 0 und 255 ist, können Sie mod(floor(RegRead/8),2) verwenden. Division durch 8 verschiebt das Bitmuster um drei Stellen nach rechts, floor wirft den Bruch weg, mod-2 ist 1 für ungerade Antworten, wenn das LSB 1 ist.
Eine andere Möglichkeit könnte numerisch von -128 bis 127 sein, wenn die Übertragung irgendwie denkt, dass das MSB ein Vorzeichenbit ist.
Betreff: Benötigen Sie ein Skript, um ein einzelnes Bit in einem 8-Bit-Code zu lesenHier ist ein tatsächliches Beispiel für Spalten (kleinerer Datensatz) mit den Informationen jeder Spalte, die Dezimalspalte ist numerisch und die Binärspalte ist ein Zeichen.
Ich interessiere mich nur für die Binary-Spalte; das LSB ändert sich von 0 auf 1 basierend auf den gesammelten Testdaten und der Programmierung jedes Registers.
Ich verwende diese Formel, um von Dez in Binär umzuwandeln
dt << New Column ("RegRead_Binary", formula(decimalToBinary = Hex(:RegRead, Base(2), Pad To(3))));
Danke noch einmal

Betreff: Benötigen Sie ein Skript, um ein einzelnes Bit in einem 8-Bit-Code zu lesenDanke, Craig
Sie hatten die Idee, die Funktion SUBSTR() zu verwenden, und ich habe sie mit den Zufallsspalten Test1,2,3 getestet
dt << New Column ("Extract_Bit5", formula(SUBSTR(:Test1, 5, 1)));
dt << New Column ("Extract_Bit7", formula(SUBSTR(:Test2, 1, 1)));
dt << New Column ("Extract_Bit0", formula(SUBSTR(:Test3, 8, 1)));
Ergebnisse
