Я работаю с тессеральной арифметикой, и мне нужно обнаружить переносы в определенных областях слова. Из-за характера программы расположение битов зависит от ввода. Например, с 32-битным размером слова и, скажем, входными данными 6 бит, мне было бы интересно проверить биты 19 и 3 для переноса сложения и биты 31 и 15 для вычитания (в более общем плане интересными битами являются (размер слова - 1), (размер слова / 2 + входные биты / 2), (размер слова / 2 - 1) и (входные биты / 2)).
То, что я думаю, это что-то вроде строк:
(after addition) ((NumberToCheck & (1 << 19 + 1 << 3)) != 0) --> carried bit(s)
(or after subtraction) ((NumberToCheck & (1 << 31 + 1 << 15)) != 0) --> carried bit(s)
Есть ли лучший подход к этому?