我对包括符号|
的按位运算以及在此示例代码中向左移动和向右移动如何反转下面的int感到困惑:
uint16_t swap_uint16( uint16_t val )
{
return (val << 8) | (val >> 8 );
}
所以我了解的是<>将其右移。我不确定|
如何使用这两个移位操作
谢谢
您未指定语言,但在大多数语言中,|
表示bit-wise OR
,因此您很可能会在各个位上进行“或”运算
example random bytes
A: 11001010
B: 00101011
-----------
11101011 (A and B bit-wise OR'ed)