Hallo, ich stelle mir vor, dass dies einfach ein Problem ist, bei dem ich nicht die richtige Formeloption finde, aber wie führt man grundlegende bitweise Operationen in einer JMP-Formel aus?
Beispiel: Hier ist ein Beispiel für Python, das ich in JMP replizieren möchte: Lambda x: ((((x >> 1) & 0x1)) << 2)
Danke, Ross
JMP hat keine nativen bitweisen Operatoren. In Ihrem Beispiel würde ich das versuchen
// untested code for (((x>>1)&0x1))<<2
f = function( { x },
( mod( floor( x / 2 ), 2 ) == 1 ) * 4
}x >> 1 (Rechtsverschiebung 1) teilt x durch 2, & 1 behält nur das kleinste Bit (Null / Eins, Gerade / Ungerade) bei, und << 2 (Linksverschiebung 2) multipliziert mit 4. (Angenommen, Python funktioniert wie C und ich habe es nicht vergessen ...)
Wenn Sie viele davon haben, mit besonderen Bitpositionen usw., möchten Sie möglicherweise nach einer Bitmanipulationsbibliothek suchen. Der einzige, den ich kenne, ist in 7 Dinge, die Sie über Twitter wissen sollten und möglicherweise nicht sehr freundlich (BITS.jsl-Datei in der Zip-Datei). Ich erinnere mich nicht genau, was es tut, aber es sieht so aus, als würde es das Problem lösen, indem eine Zahl in eine Zeichenfolge aus 32 Einsen und Nullen umgewandelt und die Zeichenfolgen dann mit UND / ODER / usw.-Logikregeln kombiniert werden. Es fehlen wahrscheinlich alle Operationen, die nicht benötigt wurden. Und ich bin mir ziemlich sicher, dass die HTTPRequest-Funktion diesen Code jetzt viel einfacher machen würde.
Negative Zahlen können bei richtigen Schichten sehr seltsam sein. Das Vorzeichenbit kann Probleme verursachen.