aboutsummaryrefslogtreecommitdiffstats
path: root/test/monniaux/nand/nand.c
blob: e628c1cf1fefcef09b2b3336c8b1852d49a80aea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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));
}