人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Ruby で論理シフト演算を行いたいのですが、よい方法を教えてください。

●質問者: typos24
●カテゴリ:コンピュータ インターネット
✍キーワード:Ruby シフト 演算 論理
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● furutanian
●0ポイント

Cと同様に「<<」と「>>」演算子が使えます。

#!/usr/bin/ruby

p 3 << 2

p 12 >> 2

◎質問者からの返答

それって算術シフトじゃないでしょうか?

http://www.jtw.zaq.ne.jp/kayakaya/new/kihon/text/shift.htm

さすがにその辺は大丈夫です。。

JavaScript でいう「>>>」がやりたいんです。


2 ● furutanian
●100ポイント

失礼しました。ではこんな感じでは?

x = 12

y = -12

p ((x + (x > 0 ? 0 : 2 ** 64)) >> 2)

p ((y + (y > 0 ? 0 : 2 ** 64)) >> 2)

論理シフトには桁が有限である必要があるので、指定しなければなりません。

◎質問者からの返答

ありがとうございます!

でも数学弱いんでよくわかりませんw。

JavaScriptと結果が違うようですが、これはどちらが正しいのでしょうか。

javascript:alert(-12>>>2)

もっと簡単な方法あればお願いします。。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ