Я делаю некоторую работу с тессеральной арифметикой, и мне нужно обнаружить переносы в определенных областях слова.Из-за характера программы расположение битов зависит от ввода.Например, с 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)
Есть ли лучший подход к этому?