巧用位运算规律 Flags
找规律
(1 ) &1 =1
(1 ) &2 =0
(1 ) &3 =1
(1 ) &4 =0
(1 ) &5 =1
(1 ) &6 =0
(1 ) &7 =1
(1 ) &8 =0
(1 ) &9 =1
(1 ) &10 =0
(1 ) &11 =1
(1 ) &12 =0
(1 ) &13 =1
(1 ) &14 =0
(1 ) &15 =1
(1 ) &16 =0
(1 ) &17 =1
(1 ) &18 =0
(1 ) &19 =1
(1 | 2 ) &1 =1
(1 | 2 ) &2 =2
(1 | 2 ) &3 =3
(1 | 2 ) &4 =0
(1 | 2 ) &5 =1
(1 | 2 ) &6 =2
(1 | 2 ) &7 =3
(1 | 2 ) &8 =0
(1 | 2 ) &9 =1
(1 | 2 ) &10 =2
(1 | 2 ) &11 =3
(1 | 2 ) &12 =0
(1 | 2 ) &13 =1
(1 | 2 ) &14 =2
(1 | 2 ) &15 =3
(1 | 2 ) &16 =0
(1 | 2 ) &17 =1
(1 | 2 ) &18 =2
(1 | 2 ) &19 =3
(1 | 2 | 4 ) &1 =1
(1 | 2 | 4 ) &2 =2
(1 | 2 | 4 ) &3 =3
(1 | 2 | 4 ) &4 =4
(1 | 2 | 4 ) &5 =5
(1 | 2 | 4 ) &6 =6
(1 | 2 | 4 ) &7 =7
(1 | 2 | 4 ) &8 =0
(1 | 2 | 4 ) &9 =1
(1 | 2 | 4 ) &10 =2
(1 | 2 | 4 ) &11 =3
(1 | 2 | 4 ) &12 =4
(1 | 2 | 4 ) &13 =5
(1 | 2 | 4 ) &14 =6
(1 | 2 | 4 ) &15 =7
(1 | 2 | 4 ) &16 =0
(1 | 2 | 4 ) &17 =1
(1 | 2 | 4 ) &18 =2
(1 | 2 | 4 ) &19 =3
(1 | 2 | 4 | 8) &1 =1
(1 | 2 | 4 | 8) &2 =2
(1 | 2 | 4 | 8) &3 =3
(1 | 2 | 4 | 8) &4 =4
(1 | 2 | 4 | 8) &5 =5
(1 | 2 | 4 | 8) &6 =6
(1 | 2 | 4 | 8) &7 =7
(1 | 2 | 4 | 8) &8 =8
(1 | 2 | 4 | 8) &9 =9
(1 | 2 | 4 | 8) &10 =10
(1 | 2 | 4 | 8) &11 =11
(1 | 2 | 4 | 8) &12 =12
(1 | 2 | 4 | 8) &13 =13
(1 | 2 | 4 | 8) &14 =14
(1 | 2 | 4 | 8) &15 =15
(1 | 2 | 4 | 8) &16 =0
(1 | 2 | 4 | 8) &17 =1
(1 | 2 | 4 | 8) &18 =2
(1 | 2 | 4 | 8) &19 =3
找到的规律就是数组 [1、2、4、8] 满足任意一个成员 Xn = 任意多个不同成员异或运算的结果 y([X1-Xn]) & Xn
即 y([X1-Xn]) & Xn =Xn
再看下 这个规律
(1 ) =1
(1 | 2 ) =3
(1 | 2 | 4 ) =7
(1 | 2 | 4 | 8) =15
2 的等比数列
巧用位运算规律 Flags的更多相关文章
- Java 位运算2-LeetCode 201 Bitwise AND of Numbers Range
在Java位运算总结-leetcode题目博文中总结了Java提供的按位运算操作符,今天又碰到LeetCode中一道按位操作的题目 Given a range [m, n] where 0 <= ...
- 简简单单学会C#位运算
一.理解位运算 要学会位运算,首先要清楚什么是位运算?程序中的所有内容在计算机内存中都是以二进制的形式储存的(即:0或1),位运算就是直接对在内存中的二进制数的每位进行运算操作 二.理解数字进制 上面 ...
- C#枚举中的位运算权限分配浅谈
常用的位运算主要有与(&), 或(|)和非(~), 比如: 1 & 0 = 0, 1 | 0 = 1, ~1 = 0 在设计权限时, 我们可以把权限管理操作转换为C#位运算来处理. 第 ...
- EF架构~为分组添加位运算聚合方法
回到目录 我们知道在Linq里的分组groupby可以对集合中一个或者多个字段进行分组,并对其中一个属性进行聚合,而Linq为我们提供了多种聚合方法,由aver,sum,count等,而在大叔权限体系 ...
- javascript位运算
javascript作为一门高级语言,他尽量让开发人员减少思考底层的硬件工作原理,而将精力集中在逻辑开发的层面.不过,不论这门语言多么高级,我们必须知道数据依然以bits的形式存储,有时候我们会直接与 ...
- C#位运算讲解与示例2
在C#中可以对整型运算对象按位进行逻辑运算.按位进行逻辑运算的意义是:依次取被运算对象的每个位,进行逻辑运算,每个位的逻辑运算结果是结果值的每个位.C#支持的位逻辑运算符如表2.9所示. 运算符号 意 ...
- 关于C/C++中的位运算技巧
本篇文章讲述在学习CSAPP位运算LAB时的一些心得. 移位运算的小技巧 C/C++对于移位运算具有不同的策略,对于无符号数,左右移位为逻辑移位,也就是直接移位:对于有符号数,采用算术移位的方式,即左 ...
- C语言原码反码补码与位运算.
目录: 一.机器数和真值 二.原码,反码和补码的基础概念 三.为什么要使用原码,反码和补码 四.原码,补码,反码再深入 五.数据溢出测试 六.位运算 ...
- POJ 1781 In Danger Joseph环 位运算解法
Joseph环,这次模固定是2.假设不是固定模2,那么一般时间效率是O(n).可是这次由于固定模2,那么能够利用2的特殊性,把时间效率提高到O(1). 规律能够看下图: watermark/2/tex ...
随机推荐
- Ubuntu Kylin 14.04安装
早听说Ubuntu Kylin对中国本地做了很多定制的工作,想搜狗输入法.WPS,还有中国日历等.昨天没事就下载了一个Kylin试用了下,使用的方法还是使用EasyBCD软件做了个硬盘安装启动,关于E ...
- 代码片段 Powershell修改桌面壁纸
其实只不过是利用了win32函数 function Set-Wallpaper($image){ $source = @" using System; using System.Runtim ...
- P1053 第K小的取法
题目描述 给定一个含n个数的数组.现在从中取出一些数.并把这些数相加得出一个和,如果有多种取法的和相同,则视为多种取法.求所有取法对应的和中第K小的和. 输入格式 第一行包括两个正整数n(n<= ...
- 配置DNS代理
- H3C根路径开销
- 常见DOS操作
D: 去往D盘 cd.. 返回上一级目录 cd 文件名 目录切换到该文件名(子目录)下 cd \ 直接回根目录 dir 当前根目录下的文件目录 dir /s 所有目录
- FreeNOS学习3——了解目录结构和Main函数
下载源码的文件夹,看到里面有以下内容: 解释一下里面都有啥 lib -> 共享代码 1.libfs 文件系统(磁盘管理) 2.liballoc 内存分配和虚拟内存映射(内存管理) 3.libex ...
- Jmeter线程组使用详解,持续加压线程组详解
以下罗列的是Jmeter 所有线程组的详解,包括官方自带的线程组,和官方插件的线程组.官方线程组安装,详见之前的文章:https://www.cnblogs.com/beimingyouyuqingc ...
- Kubernetes从私有镜像仓库中拉取镜像
当我们尝试从私有仓库中拉取镜像时,可能会收到这样提示:requested access to the resource is denied Error response from daemon: pu ...
- mysql主从之主机名导致主从机制失败的问题
一 主库 mysql主服务器的正确配置需要指定log-bin.log-bin-index server-id = 1 log-bin=master-bin log-bin-index = master ...