Сейчас на форуме: Kybyx (+1 невидимый пользователь) |
eXeL@B —› Оффтоп —› упростить бинарную формулу |
Посл.ответ | Сообщение |
|
Создано: 16 июня 2019 18:53 · Личное сообщение · #1 |
|
Создано: 16 июня 2019 21:44 · Поправил: f13nd · Личное сообщение · #2 |
|
Создано: 16 июня 2019 21:49 · Поправил: reversecode · Личное сообщение · #3 |
|
Создано: 20 июня 2019 14:13 · Личное сообщение · #4 ставим биты по маске n в слове w по странной зависимости от самого слова w? (~n & w) | (n & (w-1)) если w-1==0 то w&~n если w-1==-1 то w|n | w 000 n 010 out 010 // always the mask itself? & w 001 ~n 101 out 001 другие примеры не обдумывал, страшно и безсмысленно Добавлено спустя 10 минут ой не ошибка в первом же примере с |, w==000... но жопой чую это с масками магия, без бранчей в зависимости от w наверно компиль берёт универсальную формулу эту и подставляет её куда не лень |
|
Создано: 20 июня 2019 16:30 · Личное сообщение · #5 |
|
Создано: 20 июня 2019 19:17 · Личное сообщение · #6 при чём здесь меркле то? меркле хэшики из хэшиков делает, в принципе а тут одна бинарная операция и как её связывать с "построение дерева меркель" тебе только известно вот нормальная, не странная версия алго, х bool, ноль или один (~n & w) | (n & -x) == if (x) { w = w | n } // set bits else { w = w & ~n } // clear bits а у тебя w-1 вместо -х, вот и думай шо туда попадает и как на шо влияет чуть довавив #if 1 printf("("); printf("N "); printb(n); printf(" W "); printb(w); printf(" X "); printb((~n & w)|(n&(w-1))); printf(" SET "); printb((n | w) ); printf(" CLE "); printb((~n & w) ); //if ( ((n+1) % (w)) != ( (~n & w)|(n&(w-1)) )) printf("NEQ"); printf(") "); #endif заметил лишь только то шо длинна маски n не влияет на выход x, он всегда обрезаеца до длины слова w больше думать не могу но оно уже ближе модуло... |
|
Создано: 02 августа 2019 17:41 · Личное сообщение · #7 |
|
Создано: 04 августа 2019 19:41 · Поправил: difexacaw · Личное сообщение · #8 reversecode Это не бинарная(булева) формула, а аналого-цифровая. Есть операция вычитания, если w не булева переменная, то выражение не известно как свернуть, я такое уже спрашивал Если бы это был инкремент, то можно было бы использовать закон A - B = NOT(B) + A + 1. Как быть с деком хз. ----- vx |
|
Создано: 22 августа 2019 19:05 · Личное сообщение · #9 |
eXeL@B —› Оффтоп —› упростить бинарную формулу |