[#24536] 「Rubyの落し方」 v.s. ruby_1_8 — akira yamada / やまだあきら <akira@...>

<URL:http://jp.rubyist.net/magazine/?0002-RubyCore>

40 messages 2004/10/20
[#24541] Re: 「Rubyの落し方」 v.s. ruby_1_8 — Yukihiro Matsumoto <matz@...> 2004/10/20

まつもと ゆきひろです

[#24599] 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/26

2004-10-20 (水) の 21:38 +0900 に Yukihiro Matsumoto さんは書きました:

[#24605] Re: 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/27

2004-10-26 (火) の 16:16 +0900 に akira yamada / やまだあきら さんは書きました:

[#24606] Re: 1.8.2 preview3? — Yukihiro Matsumoto <matz@...> 2004/10/27

まつもと ゆきひろです

[#24608] Re: 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/27

2004-10-27 (水) の 11:48 +0900 に Yukihiro Matsumoto さんは書きました:

[#24620] Re: 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/27

2004-10-27 (水) の 12:42 +0900 に akira yamada / やまだあきら さんは書きました:

[#24629] Re: 1.8.2 preview3? — Tanaka Akira <akr@...17n.org> 2004/10/29

In article <1098888819.9446.14.camel@rice.p.arika.org>,

[ruby-dev:24401] Re: "a".sum(32) is 0

From: Yukihiro Matsumoto <matz@...>
Date: 2004-10-02 13:30:53 UTC
List: ruby-dev #24401
In message "Re: [ruby-dev:24397] Re: "a".sum(32) is 0"
    on Sat, 2 Oct 2004 20:39:25 +0900, Tanaka Akira <akr@m17n.org> writes:
|
|In article <1096716505.531808.29662.nullmailer@x31.priv.netlab.jp>,
|  Yukihiro Matsumoto <matz@ruby-lang.org> writes:
|
|> |次のように、"a".sum(32) が 0 になるのは変ではないでしょうか。
|>
|> そうか、1<<bitsが0になってしまうので、
|
|違います。1<<32 は i386 や sparc なら 1 になります。
|
|もし 0 になっていたら (1<<bits)-1 は 0xffffffff になって、結果は適切な
|ものになったでしょう。
|
|> 32はlongの範囲内では計
|> 算できないんですね。直しておきます。
|
|32bit までは unsigned long で扱えるでしょう。

説明されればそのように思うのですが、それだと私には
sum=97, bits=32のとき

	    sum &= (1<<bits)-1;

の結果、sumが0になる理由がよくわかりません。
なにが起きているんでしょうね。

gdbでは

  p 1<<32

が0を表示しますし(前のメールで0になると思った原因)。でも、

  p 97 & ((1<<32)-1)

は97を表示するなあ。

In This Thread