Единственный (разумный) способ сделать это - сначала преобразовать его в строку, а затем использовать метод []
:
x_str = x.to_s
puts x_str[0..2] #prints "12"
Если вы хотите получить положение строки в другой строке, используйте метод index
puts x_str.index('2') #prints 1
Fixnum
предоставляет метод []
, но это явно не то, что вы хотите.
![alt text](https://i.stack.imgur.com/xg1RO.png)
В вашем коде он возвращает 0
, потому что это 3-й (нулевой) бит в двоичном представлении 123456
.