如何在按位异或后以与输入相同的方式格式化二进制输出?
How do I format a binary output the same way as the input after bitwise XOR?
我正在尝试对两个二进制数进行按位异或,如下所示:
a_telegram = "[=10=];02;A1;00000000;*"
checksum = "00000000"
testt="{0:08b}".format(int(hex(ord(a_telegram[2])),16))
result = int(testt) ^ int(checksum)
print (checksum)
print (testt)
print (result)
输出
00000000
00110000
110000
为什么结果不是8位,而是6位?我想这是一个格式问题,但我看不出我必须改变什么。
(请原谅我的英语不好,我不是英语母语者)
使用:
a_telegram = "[=10=];02;A1;00000000;*"
checksum = "00000000"
testt="{0:08b}".format(int(hex(ord(a_telegram[2])),16))
result = int(testt) ^ int(checksum)
print (checksum)
print (testt)
print (f'{result:08}')
出局
00000000
00110000
00110000
>>>
我正在尝试对两个二进制数进行按位异或,如下所示:
a_telegram = "[=10=];02;A1;00000000;*"
checksum = "00000000"
testt="{0:08b}".format(int(hex(ord(a_telegram[2])),16))
result = int(testt) ^ int(checksum)
print (checksum)
print (testt)
print (result)
输出
00000000
00110000
110000
为什么结果不是8位,而是6位?我想这是一个格式问题,但我看不出我必须改变什么。 (请原谅我的英语不好,我不是英语母语者)
使用:
a_telegram = "[=10=];02;A1;00000000;*"
checksum = "00000000"
testt="{0:08b}".format(int(hex(ord(a_telegram[2])),16))
result = int(testt) ^ int(checksum)
print (checksum)
print (testt)
print (f'{result:08}')
出局
00000000
00110000
00110000
>>>