2017-02-05 7 views
1

値:PythonのXOR演算子は、私は私の文字列内のすべてのバイトのXORを取る方法を把握しようとしている

string = "\xa3\xb4\x55" 

100000(バイナリ)で。どのように私はこれをPythonで行うだろうか?私はこれをやって試してみた:

newString = "" 
for n in string: 
    new = n^0x20 
    newString.append(new) 

私は

output = "\x83\x94\x75" 

のように見えるようにNEWSTRINGの出力を必要とするが、私は現在、任意のヘルプ:-(理解されるだろうと届かないありがとう!

答えて

1

各文字をその文字コードに変換してから、その文字コードに対してxorを実行する必要があります。

string = "\xa3\xb4\x55" 

newString = "" 
for n in string: 
    new = chr(ord(n)^0x20) 
    newString += new 

print(newString) 

Here's a working example

:その後、あなたは、このようなものになり、文字、バックに結果を変換します
1

あなたが戻ってchr(..)を使用して文字に続いord(..)を使用して数値に変換する必要があります。

>>> "".join(chr(ord(x)^0x20) for x in "\xa3\xb4\x55") 
'\x83\x94u' # 'u' => '\x75' 
関連する問題