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



我对包括符号|在内的按位操作以及左移和右移在这个代码示例中如何反转下面的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)

最新更新