Тот же синтаксис, который вы использовали бы в C, работает в ruby, просто отбросьте типы:
n = 0xFFFFFFFFEEEEEEEE
x = (n & 0xFFFFFFFF00000000) >> 32
y = n & 0xFFFFFFFF
puts x.to_s(16)
# => "ffffffff"
puts y.to_s(16)
# => "eeeeeeee"
v = x << 32 | y
puts v.to_s(16)
# => "ffffffffeeeeeeee"
Если вам нужно, чтобы значения были в кусках ровно 32 бита (т. Е. Вам нужно передать двоичные данные в какой-либо внешний файл данных или программу), тогда вы захотите использовать Array # pack и String # unpack , чтобы получить правильные биты.