2

私の記憶が正しければ、double または float は、符号ビット、指数、および仮数の 3 つの部分に分割されます。

double がシフトされるとき、ビットは変数のバイナリ全体をシフトしますか、それとも仮数をシフトするだけですか?

4

2 に答える 2

6

少なくとも C# では、浮動小数点型をシフトすることはできません。

一方、2 で乗算または除算を繰り返すと、先ほど述べたことがわかります。正規化された数値の範囲内で、左にシフトすると指数が 1 増加し、右にシフトすると指数が 1 減少します。非正規数内では、指数は 0 に固定されているため、仮数を変更する必要があります。

編集:あなたのコメントに答えるために、指数がゼロで仮数がゼロでない場合、値は非正規/非正規数を表します。一般的な IEEE 754 の詳細については、このページを参照してください。.NET バイナリ浮動小数点に関するページがあります。

于 2010-08-16T16:09:33.620 に答える
1

私の知る限り、シフト演算子は .Net の整数に対してのみ定義されています。

于 2010-08-16T16:15:52.800 に答える