私の記憶が正しければ、double または float は、符号ビット、指数、および仮数の 3 つの部分に分割されます。
double がシフトされるとき、ビットは変数のバイナリ全体をシフトしますか、それとも仮数をシフトするだけですか?
少なくとも C# では、浮動小数点型をシフトすることはできません。
一方、2 で乗算または除算を繰り返すと、先ほど述べたことがわかります。正規化された数値の範囲内で、左にシフトすると指数が 1 増加し、右にシフトすると指数が 1 減少します。非正規数内では、指数は 0 に固定されているため、仮数を変更する必要があります。
編集:あなたのコメントに答えるために、指数がゼロで仮数がゼロでない場合、値は非正規/非正規数を表します。一般的な IEEE 754 の詳細については、このページを参照してください。.NET バイナリ浮動小数点に関するページがあります。
私の知る限り、シフト演算子は .Net の整数に対してのみ定義されています。