用于提高运算速度,规避算术运算符

在位操作运算中,不应该试图考虑先得到一个数的二进制码 ,而是应该将这个数看作是一个二进制码,二进制补码与整数之间是一一对应的.

 诚然Python中有内置函数bin将一个整数转换位二进制,python中使用该函数转换位负数,斌不是其补码.

因此不能先得到该数的二进制码. 同时绞尽脑汁得到一个属的二进制补码是没有必要的!

& : 按位与操作, 只有 1&1 为 1, 其它情况为 0. 可用于进位运算

|  :  按位或操作 , 只有 0|0 为0 ,其他情况为1

~ : 逐位取反

^ :  异或, 相同为 0 ,相异为 1 . 可用于加操作 (不包括进位项 )

<< : 左移操作, 2的幂有关

>> : 右移操作, 2的幂有关

  1. 交换律:a ^ b ^ c <=> a ^ c ^ b

  2. 任何数于0异或为任何数 0 ^ n => n

  3. 相同的数异或为0: n ^ n => 0

var a = [2,3,2,4,4]

2 ^ 3 ^ 2 ^ 4 ^ 4等价于 2 ^ 2 ^ 4 ^ 4 ^ 3 => 0 ^ 0 ^3 => 3

异或:相同为0,不同为1. 异或同一个数两次,原数不变。

随机推荐

  1. hdu-4292.food(类dining网络流建图)

    Food Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  2. git ssh key配置&解决git每次输入密码

    git ssh key配置&解决git每次输入密码:https://blog.csdn.net/qq_42817227/article/details/81415404

  3. [BZOJ 2989]数列(CDQ 分治+曼哈顿距离与切比雪夫距离的转化)

    [BZOJ 2989]数列(CDQ 分治) 题面 给定一个长度为n的正整数数列a[i]. 定义2个位置的graze值为两者位置差与数值差的和,即graze(x,y)=|x-y|+|a[x]-a[y]| ...

  4. 反射、getattr

    #coding=utf-8 class Dog(object): def __init__(self,name): self.name = name def eat(self): print '123 ...

  5. centos7 安装pip 和 Django过程

    [root@localhost ~]# yum install python-pip 已加载插件:fastestmirror Loading mirror speeds from cached hos ...

  6. 【记录】@Transactional

    参考链接:https://blog.csdn.net/nextyu/article/details/78669997 参考链接:https://www.xuebuyuan.com/3222458.ht ...

  7. 2018-8-10-sublime-Text-正则替换

    title author date CreateTime categories sublime Text 正则替换 lindexi 2018-08-10 19:16:52 +0800 2018-2-1 ...

  8. linux NFS 服务器的安装

    1. 安装 nfs 服务 [root@allentuns ~]# yum -y install  nfs-utils rpcbind 2. 启动 nfs 服务 [root@allentuns ~]# ...

  9. 《Android程序设计》课程学习

    一.课件内容 2019-2010-1学期课件,点击查看 二.作业相关 上交作业的方法 访问ftp://192.168.42.254:22,登录后找到自己的姓名文件夹,放入作业即可.登录账号为stu2, ...

  10. AIX下的ha高可用集群cluster

    安装ha软件 一.安装软件 最稳定的版本是5.4.0,优先安装稳定版本5.4 安装依赖于包base.data, cluster的man包安装失败原因是缺少base.data包 安装所有cluster. ...