找规律

(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的更多相关文章

  1. Java 位运算2-LeetCode 201 Bitwise AND of Numbers Range

    在Java位运算总结-leetcode题目博文中总结了Java提供的按位运算操作符,今天又碰到LeetCode中一道按位操作的题目 Given a range [m, n] where 0 <= ...

  2. 简简单单学会C#位运算

    一.理解位运算 要学会位运算,首先要清楚什么是位运算?程序中的所有内容在计算机内存中都是以二进制的形式储存的(即:0或1),位运算就是直接对在内存中的二进制数的每位进行运算操作 二.理解数字进制 上面 ...

  3. C#枚举中的位运算权限分配浅谈

    常用的位运算主要有与(&), 或(|)和非(~), 比如: 1 & 0 = 0, 1 | 0 = 1, ~1 = 0 在设计权限时, 我们可以把权限管理操作转换为C#位运算来处理. 第 ...

  4. EF架构~为分组添加位运算聚合方法

    回到目录 我们知道在Linq里的分组groupby可以对集合中一个或者多个字段进行分组,并对其中一个属性进行聚合,而Linq为我们提供了多种聚合方法,由aver,sum,count等,而在大叔权限体系 ...

  5. javascript位运算

    javascript作为一门高级语言,他尽量让开发人员减少思考底层的硬件工作原理,而将精力集中在逻辑开发的层面.不过,不论这门语言多么高级,我们必须知道数据依然以bits的形式存储,有时候我们会直接与 ...

  6. C#位运算讲解与示例2

    在C#中可以对整型运算对象按位进行逻辑运算.按位进行逻辑运算的意义是:依次取被运算对象的每个位,进行逻辑运算,每个位的逻辑运算结果是结果值的每个位.C#支持的位逻辑运算符如表2.9所示. 运算符号 意 ...

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

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

  8. C语言原码反码补码与位运算.

      目录:     一.机器数和真值     二.原码,反码和补码的基础概念     三.为什么要使用原码,反码和补码     四.原码,补码,反码再深入     五.数据溢出测试     六.位运算 ...

  9. POJ 1781 In Danger Joseph环 位运算解法

    Joseph环,这次模固定是2.假设不是固定模2,那么一般时间效率是O(n).可是这次由于固定模2,那么能够利用2的特殊性,把时间效率提高到O(1). 规律能够看下图: watermark/2/tex ...

随机推荐

  1. Python--day31--TCP的长链接

  2. Scrapy项目注意事项

  3. git 回滚到某个版本

    首先使用git log 显示最近的代码提交记录 commit后面的内容,就是回滚的记录名 增加了加载条显示,提高用户体验 commit 47f45668e72e4deeccae85e9767c250d ...

  4. P1062 差K素数对

    题目描述 给你两个数 n 和 k ,请求出所有小于等于 n 的相差为 k 的素数对. 输入格式 两个正整数n,k.1<=k<=n<=10000. 输出格式 所有小于等于n的素数对.每 ...

  5. Linux 线程实现机制分析 Linux 线程实现机制分析 Linux 线程模型的比较:LinuxThreads 和 NPTL

    Linux 线程实现机制分析 Linux 线程实现机制分析  Linux 线程模型的比较:LinuxThreads 和 NPTL http://www.ibm.com/developerworks/c ...

  6. LightOJ - 1287 Where to Run (期望dp+记忆化)

    题面: Last night you robbed a bank but couldn't escape and when you just got outside today, the police ...

  7. asp.net core 3.0 JObject The collection type 'Newtonsoft.Json.Linq.JObject' is not supported

    在asp.net core 3.0 中,如果直接在Controller中返回 Jobject 类型,会抛出如下错误: The collection type 'Newtonsoft.Json.Linq ...

  8. 2018-2-13-Visual-studio-C#-代码使用-NotNull

    title author date CreateTime categories Visual studio C# 代码使用 NotNull lindexi 2018-2-13 17:23:3 +080 ...

  9. codeforces 1136E 线段树

    codeforces 1136E: 题意:给你一个长度为n的序列a和长度为n-1的序列k,序列a在任何时候都满足如下性质,a[i+1]>=ai+ki,如果更新后a[i+1]<ai+ki了, ...

  10. C# ref参数

    ref关键字用于将方法内的变量改变后带出方法外.具体我们通过例子来说明: static void Main(string[] args) { int c = 0; Add(1, 2,ref c); C ...