int中位相关的操作:最高位1的位置、最低位1的位置、1的位数、最高位连续1的位数
来源:互联网 发布:二代身份证扫描软件 编辑:程序博客网 时间:2024/06/15 20:40
</pre><pre class="cpp" name="code">static const unsigned char flagtable[256] = {0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4,1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8};static const unsigned char lowflagtable[256] = {0, 1, 2, 1, 3, 1, 2, 1, 4, 1, 2, 1, 3, 1, 2, 1,5, 1, 2, 1, 3, 1, 2, 1, 4, 1, 2, 1, 3, 1, 2, 1,6, 1, 2, 1, 3, 1, 2, 1, 4, 1, 2, 1, 3, 1, 2, 1,5, 1, 2, 1, 3, 1, 2, 1, 4, 1, 2, 1, 3, 1, 2, 1,7, 1, 2, 1, 3, 1, 2, 1, 4, 1, 2, 1, 3, 1, 2, 1,5, 1, 2, 1, 3, 1, 2, 1, 4, 1, 2, 1, 3, 1, 2, 1,6, 1, 2, 1, 3, 1, 2, 1, 4, 1, 2, 1, 3, 1, 2, 1,5, 1, 2, 1, 3, 1, 2, 1, 4, 1, 2, 1, 3, 1, 2, 1,8, 1, 2, 1, 3, 1, 2, 1, 4, 1, 2, 1, 3, 1, 2, 1,5, 1, 2, 1, 3, 1, 2, 1, 4, 1, 2, 1, 3, 1, 2, 1,6, 1, 2, 1, 3, 1, 2, 1, 4, 1, 2, 1, 3, 1, 2, 1,5, 1, 2, 1, 3, 1, 2, 1, 4, 1, 2, 1, 3, 1, 2, 1,7, 1, 2, 1, 3, 1, 2, 1, 4, 1, 2, 1, 3, 1, 2, 1,5, 1, 2, 1, 3, 1, 2, 1, 4, 1, 2, 1, 3, 1, 2, 1,6, 1, 2, 1, 3, 1, 2, 1, 4, 1, 2, 1, 3, 1, 2, 1,5, 1, 2, 1, 3, 1, 2, 1, 4, 1, 2, 1, 3, 1, 2, 1};static const unsigned char highflagtable[256] = {0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4,5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8};// range : [0, 32]inline int flagCount(unsigned n){return flagtable[n & 0xff] + flagtable[(n >> 8) & 0xff] + flagtable[(n >> 16) & 0xff] + flagtable[(n >> 24) & 0xff];}// range : [0, 32]int highContinuousFlagCount(unsigned n){while ((n & (n + (n & ~(n - 1)))) != 0) n &= n - 1;return flagCount(n);}// range : [0, 32], index started with 1int lowFlagIndex(unsigned n){if (0 == n)return 0;int offset = 0;while (((n >> offset) & 255) == 0)offset += 8;return lowflagtable[(n >> offset) & 255] + offset;}// range : [0, 32], index started with 1int highFlagIndex(unsigned n){if (0 == n)return 0;int offset = 24;while ((n >> offset) == 0)offset -= 8;return highflagtable[n >> offset] + offset;}
0 0
- int中位相关的操作:最高位1的位置、最低位1的位置、1的位数、最高位连续1的位数
- 二进制中最高位1的位置
- 返回具有至多单个 1 位的 int 值,在指定的 int 值中最高位(最左边)的 1 位的位置
- n! 最低位1的位置
- N!最低位1的位置
- 1到整数n中 出现1的次数,分,最高位,非最高位,两次数相加。递归位数减1.
- 阶乘中最低位0的个数&二进制表示中最低位1的位置
- NYOJ_96 n-1位数 (输出一个除去最高位的数字)
- 求32位数中有几位非0位及最低非0位和最高非0位的方法
- 判断N!中二进制中最低位1的位置
- 返回具有至多单个 1 位的 int 值,在指定的 int 值中最低位(最右边)的 1 位的位置
- 求n的阶层二进制最低位1的位置
- 编程之美 2.2阶乘中最低位0的个数&二进制表示中最低位1的位置
- 编程之美->N!最低位1的位置
- 求N!二进制最低位1的位置
- N!的最高位
- 阶乘的最高位
- C程序:n!的二进制表示中最低位1的位置
- Android导入包报错问题Failed to complete Gradle Execution Cause: error in opening zip file.
- 数据结构 第一章 绪论
- ubuntu14.04 bower的使用
- 蓝桥杯_算法训练_区间k大数查询
- Java I/O学习(附实例和详解)
- int中位相关的操作:最高位1的位置、最低位1的位置、1的位数、最高位连续1的位数
- Admob IDFA 无法提交AppStore审核的解决方法
- Mysql主从环境搭建
- iOS开发高价集成支付宝
- 博弈pn点
- [Android]gravity和layout_gravity的区别
- 4.4.2 Android属性动画完全解析(下) Interpolator和ViewPropertyAnimator的用法
- 定时清理Linux 内存和缓存
- ZOJ 3333 Guess the Price