/* Get most significant byte from x */
int get_msb(int x) {
/* Shift by w-8 */
int shift_val = (sizeof(int)-1)<<3;
/* Arithmetic shift */
int xright = x >> shift_val;
/* Zero all but LSB */
return xright & 0xFF;
}
这个函数的功能是取 x 的最高有效位,即二进制表示中的高8位,全部用位运算来实现。
首先,确定要移动 x 的位数(x 为 int 型,长度为4字节,每字节8位,共32位),int shift_val = (sizeof(int)-1)<<3;
这里定义变量