位运算

基础知识

1.与&

两位全为1,结果才为1,否则为0

特殊用法:

   (1)清零。如果想将一个单元清零,即使其全部二进制位为0,只要与一个各位都为零的数值相与,结果为零。

   (2)取一个数中指定位   例:设X =10101110,取X的低4位,用X&00001111 = 0000 1110 即可得到

2.或 |

只要有一个为1,结果就为1

特殊用法:

   常用来对一个数据的某些位置赋1

3.异或^

两个相应位为值不同为1,相同为0 

   特殊用法:

      (1)使特定位翻转  找一个数,对应X要翻转的各位,该数的对应位为1,其余位为0,此数与X对应位异或即可

                 例:设X =10101110,使X低4位翻转,用X^00001111 = 1010 0001 即可得到

        (2)与0相异或,保留原值;与1相异或,取反

       (3)两个变量交换值的方法

     a、借助第三个变量来实现 C=A; A=B; B=C

     b、利用加减法实现两个变量的交换 A=A+B;B=A-B;A=A-B

     c、用位异或运算来实现两个变量交换值 效率最高 A=A^B;B=A^B;A=A^B

4.非~  取反

补码

32位无符号整数 unsigned int

32位有符号整数 int

1.最高位为符号位,1负,0非负

2补码  对于最高位为0的编码C,直接看作32位二进制数S

         定义该编码按位取反后得到的~C表示的数值为-1-S

3.反码  按位取反  反码加1称为补码

4.发生算数溢出时相当于自动对2^32取模

5.0x3f3f3f3f   ①2倍不超过int能表示的最大正整数 ②每八位(每个字节)都相同

  memset(a,0x3f,sizeof(a))可以给数组赋0x3f3f3f3f

移位

1.左移   

将一个运算对象的各二进制位全部左移若干位(高位越界后舍弃,右边补0)

1<<n=2^n  n<<1=2n

2.算术右移

将一个数的各二进制位全部右移若干位,高位以符号位填充,低位越界后舍弃

操作数每右移一位,相当于该数除以2向下取整

二进制状态压缩

1.取出n在二进制表示下的第k位    (n>>k)&1

2.取出n在二进制表示下的第0~k-1位(后k位)    n&((1<<k)-1)

3.把n在二进制表示下的第k位取反      n^(1<<k)

4.对n在二进制表示下的第k位赋1     n | (1<<k)

5.对n在二进制表示下的第k位赋0     n&(~(1<<k))

成对变换

对于非负整数n:

当n为奇数时,x^1=n-1

当n为偶数时,x^1=n+1

用于邻接表中边集的存储

lowbit运算

lowbit(n)取出非负整数n在二进制表示下最低位的1以及它后边的0构成的数值

lowbit(n)=n & (-n+1) =n&(-n)

用于hash找出所有是1的位,也是树状数组中的一个基本运算

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.m或d论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值