function and(a, b) {
switch (a) {
case 0:
switch (b) {
case 0:
return 0;
case 1:
return 0;
}
case 1:
switch (b) {
case 0:
return 0;
case 1:
return 1;
}
}
}
function or(a, b) {
switch (a) {
case 0:
switch (b) {
case 0:
return 0;
case 1:
return 1;
}
case 1:
switch (b) {
case 0:
return 1;
case 1:
return 1;
}
}
}
function not(a) {
switch (a) {
case 0:
return 1;
case 1:
return 0;
}
}
// nand nor xor
function nand(a, b) { return not(and(a, b)) }
function nor(a, b) { return not(or(a, b)) }
function xor(a, b) { return and(or(a, b), nand(a,b)) }