私はテッセラル算術でいくつかの作業を行っており、単語の特定の領域でキャリーを検出する必要があります。プログラムの性質上、ビットの位置は入力によって異なります。たとえば、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)
これに対するより良いアプローチはありますか?