一、二进制

a = 1

bin(a)-->ob1  #python内置方法

ob 表示二进整型制格式

二、难缠符号

1、位移二进制的位

>> 右位移,想象成 切肉切去最后一位

例如 x >> y  #先转成二进制再位移

计算公式:x/(2**y)

<< 左位移 整体左移后补0

例如 x<<y

计算公式:x*(2**y)

2、 & 按位与:是否都为1,右对齐,前边补0,有一个不是1就为0

0110

1000

-------

0000

3、| 按位或 只要有一位是1,就得1

0110

1000

------

1110

4.^按位异或:参与运算的两个值,如果两个对应bit位相同,则结果为0,否则为1

按位异或的几个常见用途:
(1) 使某些特定的位翻转
    例如对数10100001的第2位和第3位翻转,则可以将该数与00000110进行按位异或运算。
       10100001^00000110 = 10100111

(2) 实现两个值的交换,而不必使用临时变量。
    例如交换两个整数a=10100001,b=00000110的值,可通过下列语句实现:
    a = a^b;   //a=10100111
    b = b^a;   //b=10100001
    a = a^b;   //a=00000110

(3) 在汇编语言中经常用于将变量置零:
    xor   a,a

(4) 快速判断两个值是否相等
    举例1: 判断两个整数a,b是否相等,则可通过下列语句实现:
        return ((a ^ b) == 0)

4.~按位取反(翻转):1变0,0变1,公式是~x = -(x+1)

ps:补码  1、在计算机系统中,数值一律用补码来表示(存储)。

  主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补
码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。
2、补码与原码的转换过程几乎是相同的。
求给定数值的补码表示分以下两种情况:
(1)正数的补码:与原码相同。
【例1】+9的补码是00001001。
(2)负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1
其他用法
1、判断奇数偶数
     4&1   0 是偶数 1是奇数
2、计算硬盘容量
    11866(字节) >>10 
        11k
    11 >> 10
        0M

python自学笔记(六)二进制与位移的更多相关文章

  1. python自学笔记

    python自学笔记 python自学笔记 1.输出 2.输入 3.零碎 4.数据结构 4.1 list 类比于java中的数组 4.2 tuple 元祖 5.条件判断和循环 5.1 条件判断 5.2 ...

  2. Python学习笔记六

    Python课堂笔记六 常用模块已经可以在单位实际项目中使用,可以实现运维自动化.无需手工备份文件,数据库,拷贝,压缩. 常用模块 time模块 time.time time.localtime ti ...

  3. python自学笔记(一)

    我没学过python,通过网上和一些图书资料,自学并且记下笔记. 很多细节留作以后自己做项目时再研究,这样能更高效一些. python基础自学笔记 一.基本输入和输出 pthon3.0用input提示 ...

  4. Python 自学笔记(六)

    PK小游戏 1.要有玩家敌人:那就是需要定义两个角色的属性变量 2.相互攻击:需要两个角色都有血量和攻击的变量(也就是四个变量) 3.攻击减少血量:比如玩家血量=敌人攻击力-玩家当前血量 4.最终胜负 ...

  5. python自学笔记一

    之前看过一段时间的小甲鱼零基础自学python,b站上有高清免费资源[av4050443],但是作为零基础实在学得艰难,下载了python核心编程pdf,在这里做一些笔记. 虽然使用的是第二版的教材, ...

  6. python学习笔记六 面向对象相关下(基础篇)

    面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以将多函数中公用的变量封装到对象中) 对象,根据模板创建的 ...

  7. Python学习笔记六--文件和输入输出

    6.1文件对象 所有Python对文件的操作都是基于对文件对象的操作.那么就从文件对象的创建说起.open()[file()]提供初始化输入输出的接口.open()成功打开文件时会返回一个文件对象. ...

  8. Python 自学笔记(一)环境搭建

    一,关于Python的介绍 关于Python的介绍,我不想多说了,网上随便一搜,很多介绍,这里我主要写下我的自学Python的 过程,也是为了促进我能继续学习下去. 二,环境搭建 1,这里我只讲解Wi ...

  9. python 自学笔记(四) 列表

    有几天没有更新博客了,毕竟是自学,最近事情确实比较多,有时候想学的时候反而没时间,到有时间的时候反而不想学.以后得想办法改掉这个缺点,只要有时间就要学习自己想学的东西,希望自学的同学能和我共同交流,其 ...

随机推荐

  1. jeecms 2012 源码分析(2) 前台栏目页静态化分析

    还是要说到web.xml文件 <welcome-file-list> <welcome-file>index.html</welcome-file> <wel ...

  2. 关于 FPGA 和 外部芯片接口时序设计

    在看这篇文章之前, 建议先好好读下这篇文章.http://download.csdn.net/detail/angelbosj/8013827. 因为我不太会用 VISio.要是哪位网友能告诉我.怎么 ...

  3. CSS Sprite小图片自动合并工具

    css-sprite是将css样式中零星的小图标,小图片合并成大图显示,这样能减小服务器并发连接数,减小服务器负载和带宽使用,有很高的实用价值.这里介绍一些自动合并图片并生成样式的工具. NodeJS ...

  4. Java中Lambda表达式的使用

    简介(译者注:虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能.本人建议不要乱用,因 ...

  5. 关于消息推送和service的一些调查-清理内存通知栏点击无响应

    起因:做了两个带推送的app:HiApp和WeApp,前者个推,后者百度推送,但前者有一个小缺陷. 现象:两部手机 1.htcD820t手机,运行中的app利用自带的关闭最近程序后,通知栏不清理该ap ...

  6. asp.net mvc中匿名类dynamic

    dynamic info = new { name="aa", sex=“男”, age= }; //返回Model为info在前台中model.name报错,因为匿名类型默认访问 ...

  7. 深入理解java虚拟机系列二——垃圾收集算法

    在主流的商用程序语言中大多都是用根搜索算法(GC Roots Tracing)判断对象是否存活,比如java,c#等.当从GC Roots到某个对象不可达,则证明此对象是不可用的,将要被回收. 商业虚 ...

  8. 斗地主算法的设计与实现--项目介绍&如何定义和构造一张牌

    本篇主要讲解斗地主中如何比较两手牌的大小. 友情提示:本篇是接着以下两篇文章就讲解的,建议先看看下面这2篇. 斗地主算法的设计与实现--如何判断一手牌的类型(单,对子,三不带,三带一,四代二等) 斗地 ...

  9. VirtualBox 中ubuntu访问window下共享目录

    1,vbox中设置window需要共享给vbox中ubuntu的文件夹,主要要注意共享文件夹名称windowShare. 2,在ubuntu中挂载windowShare. sudo mount -t ...

  10. poj 1206

    /** 题意: 给定一序列,置换k次之后 输出其状态 置换: 考察循环节长度, 思路: 分别求出每个元素的循环节的大小,用k 模其大小,大的k次之后的位置, 输出即可 **/ #include < ...