t00x Оно и есть NOT x0, в алгебраической форме = x0+1 или оно же x0 XOR 1. Получится, но это уже не будет (x+13) mod 16, а будет что-то совсем другое.
Ra_Тебе тогда надо определиться с умножением - это арифметическое умножение или это AND... ибо если x0&x1=1, то 1&C=0... но если x0x1 = x0*x1, тогда смешивать это с XOR не имеет смысла, уж проще сложением пользоваться. или тогда уже переходить на какую-нибудь совершенно новую алгебру типа 0 и -1 (-1=111...111), где -1&C=C... но в ней x0 и x1 - это уже не отдельные биты, их надо расширять.
2 Ruptor. Вы на http://botmaster.ru.wasm.ru/forum/viewtopic.php?pid=226376#p226376 посоветовали сдвиги заменить с <<4 и >>5 на <<6 и >>9, а страницей выше на 6 и 8 (http://www.wasm.ru/forum/viewtopic.php?pid=223817#p223817). Где истина. Заранее спасибо.
Всё очень просто. Самый стойкий выбор – это 6 и 9. Но 6 и 8 быстрее на 8-битовых процессорах и не на много при этом от 6 и 9 отличается. Оба гораздо твёрже, чем 4 и 5. С ними 32 кругов достаточно для всех TEA вариантов [хотя TEA остаётся уязвим к related-key атакам и его нельзя использовать как hash].