位移位如何反转这个无符号短整型

How does bit shift reverse this unsigned short int

我对这个包括符号 | 的按位运算以及在这个代码示例中左移和右移如何反转下面的整数感到困惑:

uint16_t swap_uint16( uint16_t val ) 
{
    return (val << 8) | (val >> 8 );
}

所以我的理解是 << 将 int 左移,>> 将其右移。我不确定 | 如何处理这两个移位操作。

您没有指定语言,但在大多数语言中 | 表示 bit-wise OR 因此您很可能正在查看每个位的 OR'ing

example random bytes
A: 11001010
B: 00101011
-----------
   11101011  (A and B bit-wise OR'ed)