我需要使用下面的代码,但我对 ruby 和一般编程很陌生,不明白这是做什么的。有人能告诉我这是做什么的,或者至少这叫什么吗?
def MAKELPARAM(w1, w2)
return (w2<<16) | w1
end
谢谢!
我需要使用下面的代码,但我对 ruby 和一般编程很陌生,不明白这是做什么的。有人能告诉我这是做什么的,或者至少这叫什么吗?
def MAKELPARAM(w1, w2)
return (w2<<16) | w1
end
谢谢!
这会将 w2 左移 16 位,然后将 w1 按位或运算到结果中。
因此,如果您知道它们是数字,那么这些可能是按位运算符,但是如果传入的参数是数组,则 << 是要添加到数组的运算符。还有然后| 运算符在两个数组上执行或返回一个数组,该数组包含任一数组中的元素
例如:
w1 =[]
w2 = [16,13]
w3 = [13]
MAKELPARAM(w1,w2)
#Returns [16,13]
MAKELPARAM(w1,w3)
#Returns [16,13]
MAKELPARAM(w1,w1)
#Returns [16]
首先它将 w2 向左移动 16 位,即w2 = 1
:
w2 == 0b1
w2 << 16 == 0b1000000000000000
然后它使用 bitwise 或 with w1
。