python之位运算符(&按位与)(|按位或)(^按位异或)(~按位取反)(<<左移)(>>右移) #关于取反运算符的详细说明

本文介绍了Python中将十进制转换为二进制、八进制和十六进制的方法,同时详细讲解了位运算符如按位与(&), 按位或(|), 按位异或(^), 取反(~)以及左移(<<)和右移(>>)的用法,帮助理解计算机底层原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、先了解python里十进制转各个进制的写法:

十进制转二进制:bin(10) ,输出:0b1010是字符串类型, 0b:表示2进制
十进制转八进制:oct(10) ,输出:0o12是字符串类型, 0o:表示8进制
十进制转十六进制:hex(10) ,输出:0xa是字符串类型, 0x:表示16进制

二、python位运算符

运算符描述实例
&按位与,两个相应位都为1,则该位为1,否则为04&5=4(0b100&0b101=0b100)
|按位或,只要有一个为1时,结果就为14|5=5(0b100|0b101=0b101)
^按位异或,当对应的二进位相异时,结果为14^5=1(0b100^0b101=0b001)
~按位取反,即把1变为0,把0变为1,~x相当于-(x+1)~4=-5(具体说明在后面)
<<左移,由<<右边的数字指定移动的位数,左移,低位补04<<2=16(0b100左移2位=0b10000=16)
>>右移,由>>右边的数字指定移动的位数,右移,低位丢弃4>>2(0b100右移2位=0b001=1)

三、关于取反运算符的说明

二进制数在内存中以补码的形式存储!

  • 如果是正数,那么
    • 原码 = 反码 = 补码,
    • 正数的符号位为0(如0 100,这里的0就是符号位);
  • 如果是负数,那么
    • 反码就是把原码的每一位取反(不包括符号位),也就是0变成1,1变成0;
    • 补码就是在反码的基础上,末位+1,
    • 负数的符号位为1。
  • 例如,~4=-5
    • step1、4的原码/反码/补码都为:0 100
    • step2、取反(包括符号位)1 011
    • step3、转为补码,应用负数的规则,1 011的反码为1 100,补码在反码1 100的末位+1=1 101
    • step3、转为十进制为:-5
    • 简单记就是~x相当于-(x+1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏普通

谢谢打赏~普通在此谢过

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值