python中的与或非 | ^
生活随笔
收集整理的這篇文章主要介紹了
python中的与或非 | ^
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
&是按位邏輯運算符,比如5 & 6,5和6轉換為二進制是101和110,此時101 & 110=100,100轉換為十進制是4,所以5 & 6=4;
|是按位或邏輯運算符,比如5|6,就是101|110,得到111=7,所以最后結果為7;
^ 是按位異或邏輯運算符,比如5 ^ 6,其實是101^ 110,結果是011,所以5^6的答案是3;
今天做題遇到一個,傻逼的我當成了冪運算。。。。
# uncompyle6 version 3.7.4 # Python bytecode 2.7 (62211) # Decompiled from: Python 3.8.6 (tags/v3.8.6:db45529, Sep 23 2020, 15:52:53) [MSC v.1927 64 bit (AMD64)] # Embedded file name: 1.py # Compiled at: 2017-06-03 10:20:43 import base64def encode(message):s = ''for i in message:x = ord(i) ^ 32x = x + 16s += chr(x)return base64.b64encode(s)correct = 'XlNkVmtUI1MgXWBZXCFeKY+AaXNt' flag = '' print 'Input flag:' flag = raw_input() if encode(flag) == correct:print 'correct' else:print 'wrong' # okay decompiling E:\ctf��?\2020.11.28\f417c0d03b0344eb9969ed0e1f772091.pyc解碼運算:
import base64def decode(message):str = ''s=base64.b64decode(message)for i in s:x = i-16x = x^32str += chr(x)return strcorrect = 'XlNkVmtUI1MgXWBZXCFeKY+AaXNt' flag = decode(correct) print(flag)對一個數進行按位異或邏輯運算,只需要對相同數字再進行一次按位異或運算,即可得到原來數字。
總結
以上是生活随笔為你收集整理的python中的与或非 | ^的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实训9——蓝牙修改开锁密码
- 下一篇: HTML常用标签或属性 英文全称和中文释