【python--教程】二进制运算符

前言

计算机发明之初就是为了计算数字,编程语言就是为了更好的利用计算机进行数字计算的。python作为一个偏向于运算的编程语言,自然也少不了数字运算。
本次我们将学习python中关于二进制的运算的部分。

前提摘要

1.十进制转二进制

函数介绍:bin()函数用于将十进制数字转化为二进制数字
用法:bin(十进制数字)

例如计算十进制100的二进制数据
bin(100)

结果
'0b1100100'

#python中二进制的表现格式为 0b 加二进制值。
#比如二进制 00101100 在python的表现格式就为 0b101100,
#前置0可以省略,就是二进制从第一位开始的连续的0可以省略
#比如二进制 00101100,可以缩写为 101100

2.二进制转十进制

函数介绍:int()函数用于将十进制数字转化为二进制数字
用法:int("二进制数据",base=数据类型)

例如计算二进制'0b1100100'的十进制数据
int('0b1100100',base=2)

结果
100

讲解

下面我将介绍两个二进制数字之间的运算符号:

1 .与运算(符号:& )
解释:都为1才是1。也可以理解为都1才行,不然就是0。
举个例子:

a = 240          #十进制的240的二进制数为   11110000
b = 139          #十进制的139的二进制数为   10001011
print (a & b)    #打印 a 与 b的结果

执行结果:

128

运算过程:

1. 首先计算机会将 a 和 b 的数字转化为二进制,我们把他们依次列出来
a  = 11110000
b  = 10001011

2.我们把这两个数字以每位对齐的形式列出来
1  1  1  1  0  0  0  0   --------------------a
1  0  0  0  1  0  1  1   --------------------b

3.比较 a 和 b 中相同的部分,并将相同的部分列出来,不同的部分用0代替
1  0  0  0  0  0  0  0   --------------------c,这个就是 a 和 b 与运算得出的结果

4.把结果换算成为常见的十进制
int('0b10000000',base=2)           >>> 128           #得到数字128

5.所以 a 与 b 的结果是:128

2 .或运算(符号:| )
解释:只要有一个为1就是1。也可以理解为有1为1,否则为0
举个例子:

a = 240          #十进制的240的二进制数为   11110000
b = 139          #十进制的139的二进制数为   10001011
print (a | b)    #打印 a 与 b的结果

执行结果:

251

运算过程:

1. 首先计算机会将 a 和 b 的数字转化为二进制,我们把他们依次列出来
a  = 11110000
b  = 10001011

2.我们把这两个数字以每位对齐的形式列出来
1  1  1  1  0  0  0  0   --------------------a
1  0  0  0  1  0  1  1   --------------------b

3.比较 a 和 b 中为1的部分,并将为1的部分列出来,不为1的部分用0代替。
1  1  1  1  1  0  1  1   --------------------c,这个就是 a 和 b 或运算得出的结果

4.把结果换算成为常见的十进制
int("0b11111011",base=2)           >>> 251          #得到数字251

5.所以 a 或 b 的结果是:251

3 .异或运算(符号:^)
解释:当数字不同时才为1,否则为0
举个例子:

a = 240          #十进制的240的二进制数为   11110000
b = 139          #十进制的139的二进制数为   10001011
print (a ^ b)    #打印 a 与 b的结果

执行结果:

123

运算过程:

1. 首先计算机会将 a 和 b 的数字转化为二进制,我们把他们依次列出来
a  = 11110000
b  = 10001011

2.我们把这两个数字以每位对齐的形式列出来
1  1  1  1  0  0  0  0   --------------------a
1  0  0  0  1  0  1  1   --------------------b

3.比较 a 和 b 中不同的部分,并将不同的部分写为1,相同的部分用0代替。
0  1  1  1  1  0  1  1   --------------------c,这个就是 a 和 b 异或运算得出的结果

4.把结果换算成为常见的十进制
int("0b01111011",base=2)           >>> 123          #得到数字123

5.所以 a 异或 b 的结果是:123

接下来我将介绍单个二进制数的运算:

  1. 左位移运算(符号:<<)
    解释:将二进制数字整体往左移动,你可以理解为往结尾出添加0
    举个例子:
a = 240            #十进制的240的二进制数为   11110000
print (a << 2)     #打印 a 左位移两位的结果

执行结果:

960

运算过程:

1. 首先计算机会将 a  的数字转化为二进制,我们以每位对齐的形式列出来
1  1  1  1  0  0  0  0   --------------------a

2.将数字整体左位移,结尾处用0补充,你可以理解为在结尾处添加0
1  1  1  1  0  0  0  0  0  0   --------------------c,这个就是 a 左位移两位的结果

3.把结果换算成为常见的十进制
int("0b1111000000",base=2)           >>> 960         #得到数字960

4.所以 a  左位移两位的结果是:960
  1. 右位移运算(符号:>>)
    解释:将二进制数字整体往右移动,你可以理解为从末尾处删除数字
    举个例子:
a = 240            #十进制的240的二进制数为   11110000
print (a >> 2)     #打印 a 右位移两位的结果

执行结果:

60

运算过程:

1. 首先计算机会将 a  的数字转化为二进制,我们以每位对齐的形式列出来
1  1  1  1  0  0  0  0   --------------------a

2.将数字整体右位移,你可以理解为从末尾处开始删除数字
1  1  1  1  0  0    --------------------c,这个就是 a 右位移两位的结果

3.把结果换算成为常见的十进制
int("0b111100",base=2)           >>> 60         #得到数字60

4.所以 a  右位移两位的结果是:60
发布了83 篇原创文章 · 获赞 276 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/qq_43017750/article/details/98086160