看了wys的论文,感觉获得了不少新姿势

这里总结一下

#include <iostream>
using namespace std;
typedef unsigned int u32; inline u32 read_bit(u32 x, int pos){
return (x >> pos)&;
}
inline u32 set_bit(u32 x, int pos){
return x | (1u << pos);
}
inline u32 clear_bit(u32 x, int pos){
return x & ~(1u << pos);
} int cnt_table[ << ];
void count_pre(){
cnt_table[] = ;
for(int i = ; i < <<; i++){
cnt_table[i] = cnt_table[i >> ] + (i & );
}
}
inline int count(u32 x){
return cnt_table[x >> ] + cnt_table[x & 65535u];
} inline int count_trailing_zeros(u32 x){
int ret = ;
if(!(x & 65535u)) x >>= , ret |= ;
if(!(x & 255u)) x >>= , ret |= ;
if(!(x & 15u)) x >>= , ret |= ;
if(!(x & 3u)) x >>= , ret |= ;
if(!(x & 1u)) x >>= , ret |= ;
return ret + !x;
} int clz_table[ << ];
void clz_pre(){
clz_table[] = ;
for(int i = ; i < << ; i++){
clz_table[i] = clz_table[i >> ] - ;
}
} inline int count_learding_zero(u32 x){
return x >> ? clz_table[x >> ] : + clz_table[x & 65535u];
} inline u32 lowbit(u32 x){
return x & -x;
} //ö¾Ù×Ó¼¯
void subS(int S){
for(int i = S; i; i = (i-)&S){
//do_something(i);
}
} int main() { return ; }

常见的位运算技巧总结(膜wys)的更多相关文章

  1. ACM位运算技巧

    ACM位运算技巧 位运算应用口位运算应用口诀位运算应用口诀 清零取反要用与,某位置一可用或 若要取反和交换,轻轻松松用异或 移位运算 要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形. ...

  2. ACM中的位运算技巧

    听说位运算挺好玩的,那这节总结一下ACM中可能用到的位运算技巧. XOR运算极为重要!!(过[LC136](只出现一次的数字 - 力扣(LeetCode)):数组中每个数字都出现两次,只有一个出现一次 ...

  3. 关于C/C++中的位运算技巧

    本篇文章讲述在学习CSAPP位运算LAB时的一些心得. 移位运算的小技巧 C/C++对于移位运算具有不同的策略,对于无符号数,左右移位为逻辑移位,也就是直接移位:对于有符号数,采用算术移位的方式,即左 ...

  4. 你必须知道的基本位运算技巧(状压DP、搜索优化都会用到)

    一. 位操作基础 基本的位操作符有与.或.异或.取反.左移.右移这6种,它们的运算规则如下所示: 符号 描述 运算规则 & 与 两个位都为1时,结果才为1 | 或 两个位都为0时,结果才为0 ...

  5. 趣题: 按二进制中1的个数枚举1~2^n (位运算技巧)

    ; ; k <= n; k++){ << k)-,u = << n; s < u;){ ;i < n;i++) printf(-i)&); print ...

  6. [ C++ ] 常用位运算技巧

    1.除以二 a >> 1 2.二的n次方 1 << n 3.十进制转2进制 x&(1<<i) 持续更新

  7. 我们必须要了解的Java位运算(不仅限于Java)

    本文原创地址为 https://www.cnblogs.com/zh94/p/16195373.html 原创声明:作者:陈咬金. 博客地址:https://www.cnblogs.com/zh94/ ...

  8. Java中的位运算

    昨天去面试的时候做到了一道Java的位运算题目,发现有个运算符不懂:">>>",今天特地查了一下,并小结一下常见的位运算符号: ~  按位非(NOT)(一元运算) ...

  9. C语言的位运算

    位运算加速技巧1. 如果乘上一个2的倍数数值,可以改用左移运算(Left Shift) 加速 300% x = x * 2;x = x * 64;//改为:x = x << 1; // 2 ...

随机推荐

  1. 分布式日志系统ELK搭建

    ELK:Elasticsearch  Logstash Kibana Elasticsearch:是基于JSON的分布式搜索和分析引擎,专为实现水平扩展.高可用和管理便捷性而设计 Logstash:是 ...

  2. PHP计算两个时间戳之间间隔时分秒

    /功能:计算两个时间戳之间相差的日时分秒//$begin_time 开始时间戳//$end_time 结束时间戳function timediff($begin_time,$end_time){ if ...

  3. 带cookie请求数据

    经常会用到一些采集网上的资源,普通网站很好采,get_file_contents()/c_url(). 有的网站会有登陆后才能采集,需要带cookie请求获取(登陆网站相同方法),下面记录一下使用方法 ...

  4. Spark-源码-SparkContext的初始化

    Spark版本 1.3SparkContext初始化流程 1.0 在我们的主类 main() 方法中经常会这么写 val conf = new SparkConf().setAppName(" ...

  5. Vue简单使用,

    一些零碎的知识点: 在js中变量的声明 有三种方式: let,var, const let: 对应的是一个块级作用域 { let a = 12 } console.log(a) 这是未声明的, var ...

  6. hack游戏攻略(黑吧安全吧的黑客闯关游戏)古墓探秘

    2019.2.11 这个是找到的一个黑客游戏,就是一关一关,挺像ctf的,玩玩也挺有意思,还能涨知识. 地址:http://hkyx.myhack58.com/ 入口: 入口就是这样的.提示是 图内有 ...

  7. 利用nodejs实现商品管理系统(二)

    下面实现商品管理系统 第一步:对应的ejs与数据交换的编写格式. 商品列表界面product.ejs <% for(var i=0;i<list.length;i++){%> < ...

  8. shell重温---基础篇(流程控制&if判断&for&while&循环操作)

        和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) { search( ...

  9. LINQ查询操作符

    ·First - 返回集合中的第一个元素:不延迟 ·FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值):不延迟 ·Last - 返回集合中的最后一个元素:不延迟 ·Las ...

  10. Spring+Hiberate 多数据源的网文整理

    解决方案: http://www.th7.cn/Program/java/2011/10/23/44664.shtml 分析共享Spring配置数据源四种方式(附相应jar包)  :http://ww ...