fls - find last (most-significant) bit set

来源:互联网 发布:saas软件合同 编辑:程序博客网 时间:2024/05/20 06:55
static  int fls(int x)  {      int r = 32;        if (!x)          return 0;      if (!(x & 0xffff0000u)) {          x <<= 16;          r -= 16;      }      if (!(x & 0xff000000u)) {          x <<= 8;          r -= 8;      }      if (!(x & 0xf0000000u)) {          x <<= 4;          r -= 4;      }      if (!(x & 0xc0000000u)) {          x <<= 2;          r -= 2;      }      if (!(x & 0x80000000u)) {          x <<= 1;          r -= 1;      }      return r;  }  

原创粉丝点击