符号位的位移
1 VC的>>按位右移反汇编是sar算术右移,即保持最高位不变往右移。
2 这个:
static inline uint8_t x264_clip_uint8( int x )
{
return x&(~255) ? (-x)>>31 : x;
}
x&(~255)即x与FFFFFF00按位与,这样如果x只有低8位(一个字节),就保持不变(合函数名)
如果x高于8位,且是正数则(-x)>>31是将其符号取反后取出。
注意,用最高位表示符号则正负各能占一半。