Ciao, immagino che questo sia semplicemente un problema in cui non trovo l'opzione formula corretta, ma come si eseguono operazioni di base bit per bit in una formula JMP?
ad esempio, ecco un esempio di Python di esempio che vorrei replicare in JMP: lambda x: ((((x >> 1) & 0x1)) << 2)
grazie, Ross
JMP non ha operatori bit per bit nativi. Nel tuo esempio, proverei questo
// untested code for (((x>>1)&0x1))<<2
f = function( { x },
( mod( floor( x / 2 ), 2 ) == 1 ) * 4
}x >> 1 (spostamento a destra 1) divide x per 2, & 1 mantiene solo il bit minimo (zero / uno, pari / dispari) e << 2 (spostamento a sinistra 2) moltiplica per 4. (Supponendo che Python funzioni come C e non ho dimenticato ...)
Se ne hai molti, con posizioni di bit particolari, ecc., Potresti voler cercare una libreria di manipolazione di bit. L'unico di cui sono a conoscenza è dentro 7 cose da sapere su Twitter e potrebbe non essere molto amichevole (file BITS.jsl nel file zip). Non ricordo esattamente cosa fa, ma sembra che stia risolvendo il problema trasformando un numero in una stringa di caratteri di 32 uno e zeri, quindi combinando le stringhe usando le regole logiche AND / OR / ecc. Probabilmente mancano le operazioni che non erano necessarie. E sono abbastanza sicuro che la funzione HTTPRequest renderebbe quel codice molto più semplice ora.
I numeri negativi possono essere davvero strani quando si fanno i turni giusti. Il bit del segno può essere un problema.