~:按位取反,把数据的每个二进制按位取反
~5:5=0000 0101 (原码=反码=补码)
~5=1111 1010(补码)-(反码=补码-1)=1111 1001-原码=0000 0110=6
~5=6
print(~5)
~-3=2 print(~-3)
-3>原码=1000 0011>反码=1111 1100>补码=1111 1101
~-3=0000 0010(补码=反码=原码)=2
&:按位与:两个值都为1则为1,否则为0
5&3=1
print(5&3)
5:0000 0101
3:0000 0011
5&3=0000 0001=1(原码=反码=补码)
5&-3=5
print(5&-3)
5=0000 0101
-3=1000 0011(原码)>1111 1100(反码)>1111 1101(补码)
5&-3=0000 0101=5(正数三码合一)
^:按位异或:当两数想异时为1
5^-3=-8
print(5^-3)
-3=1000 0011>1111 1100>1111 1101(补码)
-3的补码:1111 1101
5的补码: 0000 0101
5^-3= 1111 1000(补码)>1111 0111(反码)>1000 1000=-8
|:按位或>有1为1
5|-3=-3
print(5|-3)
-3的补码:1111 1101
5的补码: 0000 0101
5|-3=>>: 1111 1101(补码)>1111 1100(反码)>1000 0011(原码)=-3
?<< x左移:运算数的二进制全部左移x位,符号位不动,高位丢弃,地位补0=>?的2的x次方
-3<<2=-12
-3的补码=1111 1101=>1000 0011(原码)=>1111 1100(反码)=>1111 1101(补码)
-3<<2=1111 0100(补码)=>1111 0011(反码)=>1000 1100(原码)=-12
?>> x右移:运算数的二进制全部右移x位,符号位不动,低位丢弃,符号位补溢出的高位
-3>>2=-1
-3的补码=1111 1101
-3>>2=1111 1111(补码)=>1111 1110(f反码)=>1000 0001=-1
标签:1111,反码,14,Python,补码,学习,0000,原码,1000 From: https://blog.csdn.net/2301_76865484/article/details/143350628