【发布时间】:2011-10-29 22:28:35
【问题描述】:
我需要在 Ruby 中获取整数的第 n 位,无论是有符号的还是无符号的。
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"
那么如何进行呢?
【问题讨论】:
标签: ruby bit-manipulation