首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

机器指令clz的C兑现

2012-08-26 
机器指令clz的C实现clz:查找一个数据x前置0的个数。?/** * 二分查找1的位置 */int clzInC(unsigned int x){

机器指令clz的C实现

clz:查找一个数据x前置0的个数。

?

/** * 二分查找1的位置 */int clzInC(unsigned int x){  if (!x) return 32;  int e = 31;  //1111 1111 1111 1111 0000 0000 0000 0000  if (x&0xFFFF0000)   { e -=16; x >>=16; }  //0000 0000 0000 0000 1111 1111 0000 0000  if (x&0x0000FF00)   { e -= 8; x >>= 8; }  //0000 0000 0000 0000 0000 0000 1111 0000  if (x&0x000000F0)   { e -= 4; x >>= 4; }  //0000 0000 0000 0000 0000 0000 0000 1100  if (x&0x0000000C)   { e -= 2; x >>= 2; }  //0000 0000 0000 0000 0000 0000 0000 0010  if (x&0x00000002)   { e -= 1; }  return e;}

热点排行