gpt4 book ai didi

基础的十进制按位运算总结与在Python中的计算示例

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章基础的十进制按位运算总结与在Python中的计算示例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

与运算 & 举例: 3&5                        解法:3的二进制补码是 11,  5的是101, 3&5也就是011&101,先看百位(其实不是百位,这样做只是便于理解) 一个0一个1,根据(1&1=1,1&0=0,0&0=0,0&1=0)可知百位应该是1,同样十位上的数字1&0=0,个位上的数字1&1=1,因此最后的结果是1.(这之后本来应该还有一步,因为我们现在得到的数值只是所求答案的补码,但是因为正数的补码即是它本身,所以就省略了。不过,下面的例子就不能省略最后这一步了).    -1&-2 解法:-1的补码是11111111,  -2的补码是11111110, 11111111&11111110得到的结果是:11111110,这个是补码,再转化位原码为100000010 (负数转换位原码的方法是减一取反),最后转换为十进制是 -2. -2&6   解法:-2的补码是11111110,  6的补码是110,   11111110&110,也就是11111110&00000110(这样写的目的是让初学者能够更好理解按位运算),按照上面的方法得到的结果是:110,转化位十进制就是6. 小技巧:利用按位与可以将任意二进制数的最后一位变为0,即就是X&0. 。

eg:

a = 5b = 3print a & b  

结果: 1 这是怎么算的呢,其实是通过a和b的二进制算的.

# a 的 b 的二进制# 0*2**3 + 1*2**2 + 0*2**1 + 1*2**0# 开始与运算a = 0101b = 0011

结果:0001 与运算就是比较a和b的二进制如果位数都为1则算为1,如果不想同或都为0则算为0。然后再把答案的二进制转为10进制.

或运算 | 举例: 4|7 解法:按位并的计算规律和按位与的很相似,只不过换了逻辑运算符,并的规律是: 1|1=1 ,1 |0=1, 0|0=0.   4|7转换位二进制就是:100|111=111.  二进制111即为十进制的7. 小技巧:利用按位并可以将任意二进制数的最后一位变为1,即就是X|1. eg:

a = 5b = 3print a | b 

结果: print  7 。

a = 0101b = 0011

a | b结果是:0111 或运算正好与与运算相反,如果位数都不为0则算为1,否则算为0.

异或操作 方法:对位相加,特别要注意的是不进位.      举例: 2^5 解法:10^101=111,二进制111得到十进制的结果是7. 1^1 解法:1+1=0.(本来二进制1+1=10,但不能进位,所以结果是0) -3^4 解法:-3的补码是11111101,4的补码是100 (也即00000100),11111101^00000100=11111101,补码11111101转为原码是1000111,即十进制的-7. 。

a = 5b = 3print a ^ b 

结果:6 。

a = 0101b = 0011

a ^ b 结果是0110 异或操作是位数不想同则算为1,否则算为0.

左移与右移 1.左移运算符  << 方法:X<<N 将一个数字X所对应的二进制数向左移动N位. 举例: 3<<2 解法:11向左移动两位变为1100,即12 . 。

2.右移动运算符  >> 方法:X>>N 将一个数字X所对应的二进制数向右移动N位. 举例: 3>>2 解法:11向右移动两位变为0. 10>>1 解法:10的二进制是1010,向右边移动一位是101,即5. 。

a = 5b = 2print a << b
结果是20       
a = 0101b = 2

a << b结果:10100 位移运算会把二进制数向左或向右移动,如上就是向左移动了2个单位.

最后此篇关于基础的十进制按位运算总结与在Python中的计算示例的文章就讲到这里了,如果你想了解更多关于基础的十进制按位运算总结与在Python中的计算示例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com