我们都知道在计算机中所有的信息最终都是以二进制的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. mysql四-2:多表查询
  2. r语言删除csv中na行_r语言,csv数据,提取特定行
  3. console.log 如何打印对象
  4. rocksdb学习笔记
  5. 【贪心】畜栏预定(ybtoj 贪心-1-3)
  6. 上传图片截图预览控件不显示cropper.js 跨域问题
  7. delphi下实现ribbon界面的方法(一)
  8. c语言中for优化,c – 在For循环中发生了什么GCC优化?
  9. Flutter-Cookbook 非官方翻译
  10. “王者对战”之 MySQL 8 vs PostgreSQL 10
  11. jsonobject修改key的值_JSONObject(org.json)的一点修改
  12. C++-采样函数GridSampling(采样提速必备)
  13. 为什么企业宁愿花 15K 重新招人,也不愿意花 10K 留住老测试员?
  14. Java 基础实验 银行转账
  15. 在endnote中制作GB/T7714《文后参考文献著录规则》的输出格式 及 编辑Output Styles中特殊符号说明
  16. UNIX网络编程第三版
  17. 手机怎么将视频制作成GIF?手机端动态图片制作的方法
  18. 液晶12864(KS0108主控)
  19. excel无法加密保存在HTML,如何excel加密后另存为后无需再输入密码/excel加密文件怎么解密?...
  20. VulnHub - Pluck靶机

热门文章

  1. window.print()去掉页眉页脚及网址链接
  2. UML相关工具一览(截止2010年7月)
  3. 【技术小说连载】新三国外传——草船借箭
  4. (TCP-over-UDP library)基于UDP协议之上实现通用、可靠、高效的TCP协议
  5. apple pencil的替代品买啥比较好?平价电容笔推荐
  6. 不需要口才和颜值,用手机就能做,分享35款自媒体工具,每天300很简单
  7. 创建和管理角色(Roles)
  8. echarts.js实现雷达图
  9. linux 多核 系统时钟,Linux时间子系统之(十五):clocksource
  10. 高斯分布+柯西-洛伦兹分布+三种光谱线型函数(洛伦兹线型函数+多普勒[高斯]线型函数+vogit 线型函数)