Hola, imagino que esto es simplemente un problema en el que no encuentro la opción de fórmula correcta, pero ¿cómo se realizan las operaciones básicas bit a bit en una fórmula JMP?
Por ejemplo, aquí hay un ejemplo de Python de ejemplo que me gustaría replicar en JMP: lambda x: ((((x >> 1) y 0x1)) << 2)
gracias Ross
JMP no tiene operadores nativos bit a bit. En tu ejemplo, probaría esto
// untested code for (((x>>1)&0x1))<<2
f = function( { x },
( mod( floor( x / 2 ), 2 ) == 1 ) * 4
}x >> 1 (desplazamiento a la derecha 1) divide x por 2, & 1 mantiene solo el bit mínimo (cero / uno, par / impar) y << 2 (desplazamiento a la izquierda 2) se multiplica por 4. (Suponiendo que Python funciona como C y no lo he olvidado ...)
Si tiene muchos de estos, con posiciones de bits peculiares, etc., es posible que desee buscar una biblioteca de manipulación de bits. El único del que soy consciente está en 7 cosas que debes saber sobre Twitter y puede que no sea muy amigable (archivo BITS.jsl en el archivo zip). No recuerdo exactamente qué hace, pero parece que está resolviendo el problema convirtiendo un número en una cadena de caracteres de 32 unos y ceros, luego combinando las cadenas usando las reglas lógicas Y / O / etc. Probablemente falten operaciones que no fueran necesarias. Y estoy bastante seguro de que la función HTTPRequest facilitaría mucho ese código ahora.
Los números negativos pueden ser realmente extraños cuando se hacen los cambios correctos. El bit de señal puede causar problemas.