Salut, j'imagine que c'est simplement un problème dans lequel je ne trouve pas l'option de formule correcte, mais comment effectuer des opérations de base au niveau du bit dans une formule JMP?
Par exemple, voici un exemple d'exemple Python que je voudrais répliquer dans JMP: lambda x: ((((x >> 1) & 0x1)) << 2)
merci, Ross
JMP n'a pas d'opérateurs de bits natifs. Dans votre exemple, j'essaierais ceci
// untested code for (((x>>1)&0x1))<<2
f = function( { x },
( mod( floor( x / 2 ), 2 ) == 1 ) * 4
}x >> 1 (décalage à droite 1) divise x par 2, & 1 ne garde que le moindre bit (zéro / un, pair / impair) et << 2 (décalage à gauche 2) multiplie par 4. (En supposant que python fonctionne comme C et que je n'ai pas oublié ...)
Si vous en avez beaucoup, avec des positions de bits particulières, etc., vous voudrez peut-être chercher une bibliothèque de manipulation de bits. Le seul dont je suis au courant est 7 choses à savoir sur Twitter et peut ne pas être très convivial (fichier BITS.jsl dans le fichier zip). Je ne me souviens pas exactement de ce qu'il fait, mais il semble que cela résout le problème en transformant un nombre en une chaîne de caractères de 32 uns et zéros, puis en combinant les chaînes en utilisant les règles logiques AND / OR / etc. Il manque probablement toutes les opérations qui n'étaient pas nécessaires. Et je suis presque sûr que la fonction HTTPRequest rendrait ce code beaucoup plus facile maintenant.
Les nombres négatifs peuvent être vraiment étranges lorsque vous effectuez les bons changements. Le bit de signe peut être un problème.