2010-07-30 35 views
2

Je sais que J a une primitive qui fonctionne comme XOR ~:, mais cela est vraiment un not equal to (!=)Est-ce que J possède une primitive xor au niveau du bit intégrée?

je peux le faire fonctionner comme un XOR bitwise en disant: xor =: 4 : '#.((#:x)~:(#:y))' dans une définition du verbe, mais cela ne fonctionne que lorsque les représentations binaires des nombres sont la même longueur. Y at-il quelque chose que je puisse faire à court de faire un verbe full-out qui utilise des instructions if pour faire les listes de la même taille pour faire un xor bit à bit.

Si vous vous demandez, je demande parce que je veux recréer mon programme Nim résolution que je suis travaille en Java dans J.

Répondre

2

J a une primitive qui vous permet de travailler facilement au niveau du bit. Ce primaire est b. et its documentation dans le dictionnaire donne des détails. Le verbe xor qui vous intéresse particulièrement est 6 b.

Des exemples d'utilisation peuvent également être trouvés dans l'entrée Rosetta Code, Bitwise Operations.