IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python中的进制转换和位运算 -> 正文阅读

[Python知识库]Python中的进制转换和位运算

?

进制转换

一般我们常见的进制有二进制,八进制,十进制,十六进制

话不多说,先看例子,实践是检验真理的唯一标准!

# 利用Python进行数据间的转换

'''
输出值看前缀:
0b  二进制
0o  八进制
0x  十六进制
默认 十进制
'''

a = 149

print(bin(a))  # binary 转二进制  (无论当前参数是几进制的)
print(oct(a))  # 转八进制
print(hex(a))  # 转十六进制

其输出结果分别为:

二进制? ? ? ? ??0b10010101

八进制? ? ? ? ??0o225

十六进制? ? ??0x95

需注意求进制时使用的函数依次为:bin()oct()hex()。另外,浮点型数据无法转进制。

下面再看一下,其他进制转十进制的例子。

?给n赋值为? ?0x558? ,使用type函数可知其数据类型还是整型,不受进制影响。

由于在Python中bin(),求不出负数的二进制码,下面教大家手动计算。

已知正整数5,求其对应的负数的二进制码?

答:先写出5的二进制码,0101,取反-->1 1010,加一,结果为? ?1 1011? (第一个1是符号位)



位运算

先看一下几个常见位运算的运算符:

&? ? ? ? ? 与运算

|? ? ? ? ? ?或运算

^? ? ? ? ? 异或运算

~? ? ? ? ? 取反运算

<<? ? ? ? 左移运算

>>? ? ? ? 右移运算

我们设n1=0b0110,n2=0b0010

n1 & n2? ? ? 计算时,相当于对其二进制各位进行与运算,结果为:0b0010

0 & 0? =0

0 & 1 = 0

1 &?1 = 1

n1 | n2? ? ? 计算时,相当于对其二进制各位进行或运算,结果为:0b0110

0 |?0? = 0

0 |?1 = 1

1 |?1 = 1

n1 ^?n2? ? ? 计算时,相当于对其二进制各位进行异或运算,结果为:0b0100

0 ^?0? = 0

0 ^?1 = 1

1 ^?1 = 0

以上三个位运算符在使用时,是两个数据的运算。当其数据类型为十进制整型时,需转化为二进制数据进行计算。

取反,左移和右移的运算符只涉及到了一个数据的变换。

对于下面的三个取反计算,我们逐一进行讨论。


print(~n1)  # 对n1进行取反    得1 1001,第一个为符号位  说明为负数;已知二进制负数,求十进制负数

print(~7)

print(~-4)

(1.)? ? ? ? ?n1 = 0b0110 ,取反即为 各位 0 转1 ,1 转 0? ? ? ? ? ?结果为 1 1001? ?

故若已知负数的二进制,要求十进制时。保留符号位为负数,再将后面的二进制,减一,取反,得十进制,带上符号位为负数

得:-7

(2.)? ? ? ?整数7 转为二进制 ,0111,取反--->1 1000,负数,输出结果应为十进制。

? ? ?故按上题的计算方法,先减一,?0111,取反,1000

得:-8

(3.) 整数-4转为二进制,?即求4的补码因为正数的补码就是负数的二进制表示

4的原码? ? ?0 0100

4的反码? ? ?1 1011

4的补码? ? ?1 1100(此为-4的二进制表示)

取反符号 进行取反? ? ?0 0011

正数,直接出结果 3

总结:当取反后为正数时,直接输出十进制形式;

? ? ? ? ? ?当取反后为负数时,需进行? ?负数的二进制转十进制的运算 (根据上文中的方法可计算)

左移和右移

关于这两个运算符,较为简单,话不多讲,看素材。

n = 12?

<<? 箭头向左,故为左移

n << 1是将12的二进制代码左移一个单位,即 1100 左移后 11000 ,结果为24(也可理解为n * 2)

>>? 箭头向右,故为右移

n >>?1 是将12的二进制代码右移一个单位,即 1100 左移后 0110 ,结果为?6(也可理解为n /?2)

题外话:刚刚看了东京奥运会混双决赛,我们的昕雯组合不敌日本队,3:4落败,全程看的十分揪心,看完后也有些失落,希望接下来的男单女单不要再出什么意外了,东京奥运会中国队加油!

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-27 16:10:51  更:2021-07-27 16:13:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/26 22:02:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码