Це дотично пов'язане з моїм прагненням винайти езотеричну мову програмування .
Таблиця двійкових чисел 0 .. 15 може бути використана для реалізації Універсальної бінарної функції за допомогою операцій індексації. Враховуючи два 1-бітні входи X і Y, усі 16 можливих функцій можуть бути закодовані в 4-бітовий опкод.
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
Отже цей набір з 16 функцій можна застосувати до двійкових входів як функції
U (f, x, y): (f >> ((x << 1) | y)) & 1 ,
або
U (f, x, y): (f / 2 ^ (x × 2 + y))% 2 ,
або з індексуванням або матричним розподілом.
Буде корисно знати найбільш компактний спосіб подання або генерування такої таблиці значень для будь-яких можливих мов, що будуються при цьому типі бінарних операцій.
Мета:
Створити цей точний текст:
0101010101010101
0011001100110011
0000111100001111
0000000011111111
Це воно! Виграє найкоротший код.