ruby - 什么是 << 在 ruby 中代表整数
问题描述
我在数组中了解它的用途是什么 <<
,它用于推送,但在这里我不清楚以下代码的目的是什么。在哪里使用整数。
def array_pack(a)
a.reverse.reduce(0) { |x, b| (x << 8) + b }
end
array_pack([24, 85, 0]) # will print 21784
就像如果我 x 是 8 并且我写8 << 8
它给我的响应2048
那么它是否以字节为单位转换?或者它的目的到底是什么。
解决方案
它是一个按位左移运算符。
定义:
The LEFT SHIFT operator << shifts each bit of a number to the left by n positions.
例子:
如果你这样做7 << 2 = 28
基地 2 中的 7 个:0000 0111
128 64 32 16 8 4 2 1
----------------------
7: 0 0 0 0 0 1 1 1
现在将每个位向左移动 2 个位置
128 64 32 16 8 4 2 1
----------------------
28: 0 0 0 1 1 1 0 0
为什么?
位运算符广泛用于嵌入式系统上的低级编程以应用掩码(在本例中为整数)
好处
看到这个答案:链接
查看源代码以获取更多详细信息:链接