python[初学] 进制转换\取反\左移\右移 问题

# 十进制转二进制
print(bin(13))
print(bin(45))
# 二进制转十进制
b=0b10111
print(int(b))
c=-2
print(bin(c))
print(bin(-8))
'''
真正的-8的二进制
步骤:
1.先求+8的二进制
0000 1000 (内存里的存储形式)
2.取反
1111 0111
3.
最后位数加一
1111 0111
        1
----------
1111 1000
'''
c=0o6430  #0o开头的都是8进制 里面的数字不能超过8
print(int(c))

# 8进制转2进制
# 0o6430
#       6     4     3       0
#     110    100   011     000
# 三个一位数字
# 转换完成:110100011000


'''
十六进制 0x开头 0-9 a-f
'''
d=0x911
print(int(d))
print(9*16*16+1*16+1)
d=0x9ab16
print(int(d))
'''
  d=9     a    b     1   6
   1001 1010 1011  0001 0110
十六进制转二进制:10011010101100010110
四个一位数字
'''
print(int(0b10011010101100010110))
# 验证正确







print(3&2)
'''
位运算 先算出&两边的二进制
0000 0011 & 0000 0010
进行True和False的&运算(1=True,0=False)
0000 0011
0000 0010
-------------
0000 0010
'''














print(~5)
# 取反 对十进制数字对应的二进制进行取反操作
'''
5=ob101
即0000 0101
->1111 1010
看第一位(第一位是 符号位,只要第一位是1的就是负数,第一位是0的就是正数)
->1111 1010 减1
->1111 1001 取反
->0000 0110 =int -6
'''












print(3^5)
'''
异或 ^ 相同的是0 不同的是1
3=0b 0000 0011
5=0b 0000 0101
--------------------
     0000 0110
 int(0000 0110) = 6

'''




# 二进制的位移
# 左移:
print(2<<1)
print(2>>1)
'''
2的二进制:
0000 0010
0000 0100(<<)
0000 0001(>>)
'''
print(5>>2)
'''
左移 m<<n m*2^n
右移 m>>n m//2^n
'''
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值