我对包括符号|
在内的按位操作以及左移和右移在这个代码示例中如何反转下面的int感到困惑:
uint16_t swap_uint16( uint16_t val )
{
return (val << 8) | (val >> 8 );
}
所以我所理解的是<lt;将int向左移位并且>gt;向右移动。我不确定|
如何处理这两个轮班操作。
您没有指定语言,但在大多数语言中,|
的意思是bit-wise OR
,因此您很可能会在每个相应的位中查看OR
example random bytes
A: 11001010
B: 00101011
-----------
11101011 (A and B bit-wise OR'ed)