Есть ли у J встроенный поразрядный примитив xor? - PullRequest
2 голосов
/ 30 июля 2010

Я знаю, что у J есть примитив, который работает как xor ~:, но это действительно not equal to (!=)

Я могу заставить его функционировать как побитовый xor, сказав: xor =: 4 : '#.((#:x)~:(#:y))' в определении глагола, но это работает только тогда, когда двоичные представления чисел имеют одинаковую длину.Могу ли я что-нибудь сделать, кроме создания полного глагола, который использует операторы if, чтобы составить списки одинакового размера для создания побитового xor.

Если вам интересно, я спрашиваю, потому чтоЯ хочу воссоздать мою программу решения Nim, которую я получил на Java в J.

1 Ответ

2 голосов
/ 21 февраля 2011

J имеет примитив, который позволяет вам легко работать побитово.Это первичный b. и его документация в Словаре дает подробности.Глагол xor, который вас особенно интересует: 6 b.

Примеры использования также можно найти в записи кода Розетты, Побитовые операции .

...