我们都知道在计算机中所有的信息最终都是以二进制的0和1来表示,而有些算法是通过操作bit位来进行运算的,这就需要我们了解Python中如何去表示二进制,又如何是进行位运算的。

二进制的表示

首先在Python中可以通过以"0b"或者"-0b"开头的字符串来表示二进制,如下所示

由此可知我们用二进制表示的数字在打印之后会变成我们更为熟悉的十进制数,更容易被人理解。

当我们需要看十进制数字的二进制表示时,可以使用bin函数

二进制的位操作

首先一点需要明确的是所有的运算(包括位操作)在计算机内部都是通过补码形式来进行运算的,关于补码可以参考文章原码,反码和补码

在Python中提供了如下二进制的位操作:

下面我们分别来看下:

左移

以0b11为例,0b11的补码就是0b11,所以左移就是将所有的0和1的位置进行左移,移位之后将空位补0。

负数的左移相对来说就比较复杂,以-2 << 2为例,-2的原码是10000000000000000000000000000010(32位系统),其补码为11111111111111111111111111111110,左移之后变为11111111111111111111111111111000,再转化为原码即10000000000000000000000000001000,也就是-8,也就是-2*(2**2)=-8

左移超过32位或者64位(根据系统的不同)自动转化为long类型。

左移操作相当于乘以2**n,以5 << 3为例,相当于5(2*3),结果为40。

右移

python输出二进制数字_Python获取数字的二进制值相关推荐

  1. Python获取数字的二进制值

    目标 想要获取一个整形数字的二进制表示 bin 内置函数 看一下官方的解释 Convert an integer number to a binary string prefixed with &qu ...

  2. python输出时间_Python获取并输出当前日期时间

    取得时间相关的信息的话,要用到python time模块,python time模块里面有很多非常好用的功能,你可以去官方 文档了解下,要取的当前时间的话,要取得当前时间的时间戳,时间戳好像是1970 ...

  3. python中的content方法_content最新:python计算Content-MD5并获取文件的Content-MD5值方式_爱安网 LoveAn.com...

    关于"content"的最新内容 聚合阅读 这篇文章主要介绍了python计算Content-MD5并获取文件的Content-MD5值方式,具有很好的参考价值,希望对大家有所帮助 ...

  4. python输出字符_python输出字符

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python中有两种格式化输出字符串的方式:格式化表达式.format()方法. ...

  5. python输出星号_python中星号

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! *在python中具有特殊含义,就像它在c中一样? 我在python cookb ...

  6. python生成时间戳_Python 获取时间戳

    import time time_tup = time.localtime(time.time()) print time_tup format_time='%Y-%m-%d_%a_%H-%M-%S' ...

  7. python输出结果_python输出结果

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! tdqm输入的list可以是字符串,也可以对输出进度条加一些描述import t ...

  8. python遍历数组获取下标_python获取list下标及其值的简单方法

    python列表知道下标怎么取值在python中,如果知道列表下标,可以直接通过下标法(列表名[下标])来在python中,如果知道列表下标,可以直接通过下标法(列表名[下标])来取出该下标对应的列表 ...

  9. 用python输出数组_Python 中输出数组中的全部元素

    只需要在开头加上一句即可 import numpy as np np.set_printoptions(threshold=np.inf) Python 输出到文本中 参考:https://blog. ...

最新文章

  1. CoreOS的Tectonic新发行版支持Kubernetes自我管理
  2. 为什么要使用Handler
  3. hdoj 4450 Draw Something 水题
  4. TextView图文混排,显示添加的图片,三种常用方法,亲测
  5. springboot中如何获取yml配置文件中的配置信息
  6. python编写购物程序_Python实现购物程序思路及代码
  7. 河北科技大学——数据结构课后习题
  8. C语言 memcpy_s 函数 - C语言零基础入门教程
  9. Cs231N_学习笔记
  10. Dart基础-控制流程与异常处理
  11. 计算机考研专业课王道,王道论坛,专注于计算机考研的点点滴滴!
  12. Java练手项目-王者荣耀项目源码分享!
  13. 服务器装系统报0x0000005d,虚拟机无法安装win10系统提示错误代码0x0000005D怎么办...
  14. 解决桌面IE图标删除不掉问题
  15. w ndows摄像头驱动怎么安,如何安装摄像头驱动?求安装步骤和方法!!!
  16. B+树索引实战:全值匹配查询
  17. android标题栏跑马灯,Android跑马灯效果
  18. FPGA芯片选型(FPGA初学者的选择)
  19. 云计算技术学习书籍推荐
  20. fzu 1891 升降序列

热门文章

  1. idea2021创建webservice教程
  2. 360浏览器的主页为什么无法修改?
  3. 推荐几个UI/UX设计师常用软件和网站
  4. c++代码实现图的BFS遍历
  5. 电信将大推多款3G大屏千元智能机 首批9月上市
  6. Debian 8.0(Jessie) 无线网卡,ATI显卡驱动和输入法等安装记录。
  7. Vue脚手架构建项目
  8. 捷径系统极简健身如何选择健身房管理系统?
  9. 十部门:支持绿色、智能家电销售 促进家电更新换代
  10. vue ,background属性的使用