本帖最后由 英顺的马甲 于 2013-3-1 18:03 编辑
对整数来说就是
二进制上向左移n个位
2 的二进制为 10
所以 2 << 1 就是二进制100
所以就是 2 << 1 = 4
而 2 >> 1 就是二进制1
2 >> 1 = 1
以此类推
提供一段脚本做参考
def left(i,n) s = i.to_s(2) n.times{s += "0"} s.to_i(2) end def right(i,n) s = i.to_s(2) n.times{s.slice!(-1,1)} s.to_i(2) end p (left 2,1)==2<<1 p (right 2,1)==2>>1 p (left 2,2)==2<<2 p (right 2,2)==2>>2 p (left 2,3)==2<<3 p (right 2,3)==2>>3
def left(i,n)
s = i.to_s(2)
n.times{s += "0"}
s.to_i(2)
end
def right(i,n)
s = i.to_s(2)
n.times{s.slice!(-1,1)}
s.to_i(2)
end
p (left 2,1)==2<<1
p (right 2,1)==2>>1
p (left 2,2)==2<<2
p (right 2,2)==2>>2
p (left 2,3)==2<<3
p (right 2,3)==2>>3
至于字符串以及其他的类都有个别的定义== |