Dies hängt tangential mit meiner Suche nach einer esoterischen Programmiersprache zusammen .
Eine Tabelle der Binärzahlen 0 .. 15 kann verwendet werden, um eine universelle Binärfunktion unter Verwendung von Indexierungsoperationen zu implementieren. Bei zwei 1-Bit-Eingängen X und Y können alle 16 möglichen Funktionen in einem 4-Bit-Opcode codiert werden.
X Y F|0 1 2 3 4 5 6 7 8 9 A B C D E F
- - - - - - - - - - - - - - - - - -
0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
- - - - - - - - -
0 ~X ~Y ^ & Y X | 1
ZERO NOT-Y AND OR
NOT-X XOR ONE
Dieser Satz von 16 Funktionen kann also als Funktion auf Binäreingänge angewendet werden
U (f, x, y): (f >> ((x << 1) | y)) & 1 ,
oder
U (f, x, y): (f / 2 ^ (x × 2 + y))% 2 ,
oder mit Indexierung oder Matrixpartitionierung.
Es ist nützlich, die kompakteste Methode zu kennen, um eine solche Wertetabelle für alle möglichen Sprachen darzustellen oder zu generieren, die auf dieser Art von Binäroperation aufbauen.
Das Ziel:
Generieren Sie genau diese Textausgabe:
0101010101010101
0011001100110011
0000111100001111
0000000011111111
Das ist es! Kürzester Code gewinnt.