符号位的位移

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是将其符号取反后取出。
注意,用最高位表示符号则正负各能占一半。
posted @ 2013-02-24 13:17  yurius  阅读(917)  评论(0编辑  收藏  举报