JSFiddle - React, Tailwind, and code Playground
by Hans PUFAL
JavaScript
function nand (x, y) { return +!(+x && +y); }
function not (x) { return nand (+x, 1); }
function xor (x, y) { return nand (nand (x, y), nand (not (x), not (y))); }
function xprime (NX, ZX, X) { return xor (NX, nand (X, ZX)); }
function bstring (n, l) {
return (new Array (l).join ('0') + n.toString (2)).slice (-l);
}
console.log ('nand');
for (var v, n = 4; n--;) {
v = bstring (n, 2).split ('');
console.log (v.join (' ') + ' ' + nand.apply (null, v));
}
console.log ('xor');
for (var v, n = 4; n--;) {
v = bstring (n, 2).split ('');
console.log (v.join (' ') + ' ' + xor.apply (null, v));
}
console.log ('xprime');
for (var v, n = 8; n--;) {
v = bstring (n, 3).split ('');
console.log (v.join (' ') + ' ' + xprime.apply (null, v));
}