我一直在努力按位运算符及其实际用法。我在网上找到了一个示例,说明我在C ++中所做的事情,并且想知道那里正在发生什么。
for (int i = 0; i < size / 2; ++i)
{
queue->push(temp[i] & 0xff);
queue->push((temp[i] >> 8) & 0xff);
}
我大致知道“ And”和“ Shift”运算符在做什么,但是这如何影响temp变量和结果。任何人都可以帮助您理解吗?
temp变量在任一操作中均不受影响。第一个逻辑操作是隔离temp变量的低8位并将其压入队列,第二个操作是隔离接下来的8位(数字8至15)并将其压入队列。这两个操作的重复大小为2倍。