aboutsummaryrefslogtreecommitdiffstats
path: root/test/monniaux/nand/nand.c
blob: 379a1bad5c1a14b1a280a66db0fb92acef51d77d (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
#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;
}

int main() {
  scalar x = 0xF4, y = 0x33;
  printf("%X\n", nxor(x, y));
}