如何进行简单的二进制左移操作和二进制到int转换?

时间:2014-01-27 00:56:27

标签: ruby

  

<< 二进制左移操作员。   左操作数值向左移动数字
  由右操作数指定的位数。

二进制数:

  • 1 0001
  • 2 0010
  • 3 0011

这是我对Binary离开<<的工作方式的理解:

  • 3 << 1 == 6 6 == 0110)因此3 0011 1 0001究竟正在被“转移”了什么?等式的第二部分只是告诉它剩下多少个零?所以3 << 1 == 6只是意味着将3的二进制值移到1为零?或者2 << 3 == 16只是意味着将2的二进制文件移到3零处?

问题:

  1. 我对二元左移算子的理解是否正确?
  2. 我可以使用int"%04b" % int转换为二进制文件,但如何从二进制转换为int?

1 个答案:

答案 0 :(得分:1)

  1. 是。左移正是它看起来的样子 - 它不像其他操作符那样按位操作每个操作数的各个位,&lt;&lt;和&gt;&gt;使用整个另一个来操作一个人的各个位。
  2. 试试这个:"10".to_i(2) - &gt; 2

    string上的to_i方法接受了解释对象的基础的参数。所以,像"ff".to_i(16) - &gt; 255。