diff options
Diffstat (limited to 'test/monniaux/nand/nand.c')
-rw-r--r-- | test/monniaux/nand/nand.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/test/monniaux/nand/nand.c b/test/monniaux/nand/nand.c new file mode 100644 index 00000000..e628c1cf --- /dev/null +++ b/test/monniaux/nand/nand.c @@ -0,0 +1,48 @@ +#include <stdio.h> + +typedef unsigned long scalar; + +scalar not(scalar x) { + return ~x; +} + +scalar nand(scalar x, scalar y) { + return ~(x & y); +} + +scalar nor(scalar x, scalar y) { + return ~(x | y); +} + +scalar nxor(scalar x, scalar y) { + return ~(x ^ y); +} + +scalar andn1(scalar x, scalar y) { + return ~x & y; +} + +scalar andn2(scalar x, scalar y) { + return x & ~y; +} + +scalar orn1(scalar x, scalar y) { + return ~x | y; +} + +scalar orn2(scalar x, scalar y) { + return x | ~y; +} + +scalar nandimm(scalar x) { + return ~x & 45; +} + +scalar notnot(scalar x) { + return ~ ~ x; +} + +int main() { + scalar x = 0xF4, y = 0x33; + printf("%X\n", nxor(x, y)); +} |