まつもと ゆきひろです

In message "[ruby-math:00893] 負数の右シフト"
    on 03/06/15, masaki <GEC01122 / nifty.ne.jp> writes:

|ruby 1.8.0 (2003-06-10) [i686-linux] で
|
|-1 >> 1 #=> -1
|
|となりますが、これは仕様ですか?
|
|"(-n) >> m と -(n >> m) は同じ" とした方が分りやすくないですか?

仕様です。

ビット演算について負数は左側に無限に1ビットがたっていると見
なします。ですから-1(全ビット1)では左シフトによって全部のビッ
トが左にひとつずれて結果として-1になります。

この負数は左側無限1というモデルはコンピュータがよく使う2の補
数と相性が良いのでこのままにしようと思ってます。