Мне нужно получить n-й бит целого числа, со знаком или без знака, в Ruby.
x = 123 # that is 1111011
n = 2 # bit 2 is ...0
Следующий фрагмент кода не работает в общем случае:
x.to_s(2)[-(n+1)] #0 good! but...
из-за отрицательных чисел, не представленных как 2-дополнение:
-123.to_s(2) # "-1111011"
Так как же продолжить?