擅长:python、mysql、java
<p>使用位运算符</p>
<pre><code>B01, B02, B03 = (120,198,235)
print(f' B01: {B01:012b}', B01)
print(f' B02: {B02:012b}', B02)
print(f' B03: {B03:012b}', B03)
print(' -')
B02a = B02 & 0xF0
B02b = B02 & 0x0F
print(f'B02a: {B02a:012b}', B02a)
print(f'B02b: {B02b:012b}', B02b)
print(' -')
B02a = B02a << 4
B02b = B02b << 8
print(f'B02a: {B02a:012b}', B02a)
print(f'B02b: {B02b:012b}', B02b)
print(' -')
X1 = B01 | B02a
X2 = B03 | B02b
print(f' X1: {X1:012b}', X1)
print(f' X2: {X2:012b}', X2)
print(' -')
</code></pre>
<p>结果:</p>
<pre><code> B01: 000001111000 120
B02: 000011000110 198
B03: 000011101011 235
-
B02a: 000011000000 192
B02b: 000000000110 6
-
B02a: 110000000000 3072
B02b: 011000000000 1536
-
X1: 110001111000 3192
X2: 011011101011 1771
</code></pre>
<p>位与预期的一样,但是您错误地将<code>110001111000</code>转换为<code>12768</code>,因为它给出了<code>3192</code></p>
<pre><code>int('110001111000', 2) # 3192
</code></pre>