常见的位运算技巧总结(膜wys)
看了wys的论文,感觉获得了不少新姿势
这里总结一下
#include <iostream> using namespace std; typedef unsigned int u32;inline u32 read_bit(u32 x, int pos){return (x >> pos)&1; } 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[1 << 16]; void count_pre(){cnt_table[0] = 0;for(int i = 0; i < 1<<16; i++){cnt_table[i] = cnt_table[i >> 1] + (i & 1);} } inline int count(u32 x){return cnt_table[x >> 16] + cnt_table[x & 65535u]; }inline int count_trailing_zeros(u32 x){int ret = 0;if(!(x & 65535u)) x >>= 16, ret |= 16;if(!(x & 255u)) x >>= 8, ret |= 8;if(!(x & 15u)) x >>= 4, ret |= 4;if(!(x & 3u)) x >>= 2, ret |= 2;if(!(x & 1u)) x >>= 1, ret |= 1;return ret + !x; }int clz_table[1 << 16]; void clz_pre(){clz_table[0] = 16;for(int i = 1; i < 1 << 16; i++){clz_table[i] = clz_table[i >> 1] - 1;} }inline int count_learding_zero(u32 x){return x >> 16 ? clz_table[x >> 16] : 16 + clz_table[x & 65535u]; }inline u32 lowbit(u32 x){return x & -x; }//ö¾Ù×Ó¼¯ void subS(int S){for(int i = S; i; i = (i-1)&S){//do_something(i); } }int main() { return 0; }
转载于:https://www.cnblogs.com/Saurus/p/6536361.html
常见的位运算技巧总结(膜wys)相关推荐
- 漫画:位运算技巧整理汇总+一道被嫌弃的题目
(这首歌挺喜欢的...分享出来) 今天是小浩算法"365刷题计划"第65天.这两天总有人来问我,做公众号赚了多少钱,或者就是怎么能和你一样,2个月就做到7000粉丝.说实话,至少到 ...
- python写整数逆位运算_简单了解python的一些位运算技巧
前言 位运算的性能大家想必是清楚的,效率绝对高.相信爱好源码的同学,在学习阅读源码的过程中会发现不少源码使用了位运算.但是为啥在实际编程过程中应用少呢?想必最大的原因,是较为难懂.不过,在面试的过程中 ...
- Java位运算,常见的位运算
前提 位运算符中 ,操作数只能为整型和字符型数据 运算符号 按位与(&):同1则1 → true&&true 操作数1 0 0 1 1 操作数2 0 1 0 1 按位与 0 0 ...
- 使用位运算技巧比较两个数中较大的数
使用位运算技巧比较两个数中较大的数 作者:Grey 原文地址: 博客园:使用位运算技巧比较两个数中较大的数 CSDN:使用位运算技巧比较两个数中较大的数 题目要求 如何不要用任何比较判断符(>, ...
- 你可能不知道的位运算技巧
作者 | bigsai 责编 | 张文 头图 | CSDN 下载自视觉中国 位运算隐藏在编程语言的角落中,其神秘而又强大,暗藏内力,有些人光听位运算的大名的心中忐忑,还有些人更是一看到位运算就远远离 ...
- 《位运算技巧以及Leetcode的一些位运算题目》
目录 技巧 练习位运算 [461. 汉明距离](https://leetcode-cn.com/problems/hamming-distance/) [190. 颠倒二进制位](https://le ...
- 漫画:位运算技巧助你俘获offer
今天是小浩算法"365刷题计划"第61天.继续分享一道和位运算有关的题型,同样在难度上属于简单.建议先看一下昨天的题目,因为同样的技巧,也可以使用在本题中. 漫画:三分钟学习一道位 ...
- NKU两题简单题解析(递归分析与位运算技巧)
题目:http://acm.nankai.edu.cn/p1002.html 题意:对给定的f(n),当 n>=50025002 的时候,f(n)=n-5:当 n<50025002 的时候 ...
- 位运算简介及实用技巧(一):基础篇
去年年底写的关于位运算的日志是这个Blog里少数大受欢迎的文章之一,很多人都希望我能不断完善那篇文章.后来我看到了不少其它的资料,学习到了更多关于位运算的知识,有了重新整理位运算技巧的想法.从今天起我 ...
- 位运算的一些技巧总结
位运算 这里主要总结一些位运算的基础用法,不从位运算的运算过程展开了: 1.&(and)运算 &运算通常用于二进制取位操作,例如一个数 & 1的结果就是取二进制的最末位. 基础 ...
最新文章
- 【专访】KDD2018主席熊辉教授:数据挖掘与深度学习结合新趋势
- java 模拟实现mq,RabbitMQ的5种模式,并使用java进行模拟操作
- 使用SSH上传部署WAR包到服务器
- 【学习笔记】之多项式使人头秃
- CM005-逆向分析过程(上篇)
- Ubuntu 安装和修改Apache2端口
- mysql使用数据库_MySQL数据库的常用操作
- 利用Eclipse的Update组件实现适合企业应用的更新组件(1)
- 典型案例:Bug 9776608-多个用户使用错误密码登录同一个用户而造成的用户无法登录异常...
- 在ubuntu 16.04中安装source insight 4.0破解版
- 连接远程hbase长时间等待问题
- pcs7组态虚拟机中的服务器,pcs7组态虚拟机中的服务器(ECS700无法连接到组态服务器)...
- 063.django之模板层
- 服务器主板双cpu性能好吗,双CPU的电脑用起来,性能和功耗都是原来的两倍?
- android仿小米日历,实现一个仿小米日历控件
- 常见混沌系统—Chen模型
- 实战 | 一键导出微信阅读记录和笔记
- 简单工厂和工厂方法模式的区别和个人看法
- JAVA 与 JVM
- MobileNetV3 实战:植物幼苗分类(pytorch)