次のコードをリファクタリングする必要があるため、コンパイラの警告は生成されません。
short bi_buf;
int bi_valid;
int value;
....
bi_buf |= (short)((value << bi_valid) & 0xffff);
コンパイラの警告レベルが 3 以上に設定されている場合、次のエラーが発生します。
Error CS0675 Bitwise-or operator used on a sign-extended operand; consider casting to a smaller unsigned type first
これはキャストによって修正できることは理解していますが、ビットごとの演算子の経験がある人が正しいことを確認してくれることを感謝します。