2016-12-09 7 views
0

2つの整数の間のシャベル演算子はどのようにして戻り値になりますか?このRuby式ではどのような計算が行われていますか?5 << 7?

irb(main):001:0> 5 << 7 
=> 640 
+1

これは文書化されており、簡単に見つかりました。 http://ruby-doc.org/のメインページを見て、[Core API](http://ruby-doc.org/core)リンクをクリックし、ブラウザを使って '<<'を検索してください。あなたはそこから簡単に見つけ出すことができます。 –

+0

Rubyの開発者がドキュメントを改善できるように、あなたが理解できなかったドキュメントの特定の部分を教えてくれれば幸いです。 –

+0

私は最初にruby-docページの最上部にある検索ボックスで「<<」を検索しようとしましたが、空になってしまいました。次に、「<<」メソッドのIntegerおよびNumericクラスのページを調べ、空になった。当時、私は決してコア・ページの「<<」のブラウザー検索を実行して、コア・ライブラリーのすべての単一のRubyメソッドを検索することは考えていませんでした。私はレッスンを学んだ。 –

答えて

5

これは、ビット単位のシフトです:

640 = 5 * (2^7) 
+1

「5 * 2 ** 7#=> 640'」というコードでこれを正しく書く方が良いでしょう。 –

8

これは、あなたがそれをより簡単進数表記で実証見ることができます左シフト演算子、次のとおりです。

5 << 7 
# => 640 
5.to_s(2) 
# => "101" 
(5 << 7).to_s(2) 
# => "1010000000" 

お知らせ追加7 0ビット。

関連する問題