Python解码旧文档二进制数据求助:Base64转译数值推导存疑
旧文档二进制数据解码求助
Base64编码
FBE80YlsYgAIhjELHyhxUyQsNyQrawAMOgAQEAAQEAAIDwAUrgARCQAQHAATiAAY1QcwGQ AMMCbJCAARIgAMc4qUV4iRIgAUuAARtAAUV4iRUgAMPAAJKQ9sRoiRtAAUOCbBSJf0OwAJ jYIJjYIChhCq+v1bS0tHR0Y=
Base64解码后的二进制字符串
0001010000010001001111001101000110001001011011000110001000000000000010 0010000110001100010000101100011111001010000111000101010011001001000010 1100001101110010010000101011011010110000000000001100001110100000000000 0100000001000000000000000100000001000000000000000010000000111100000000 0001010010101110000000000001000100001001000000000001000000011100000000 0000010011100010000000000000011000110101010000011100110000000110010000 0000000011000011000000100110110010010000100000000000000100010010001000 0000000000110001110011100010101001010001010111100010001001000100100010 0000000000010100101110000000000000010001101101000000000000010100010101 1110001000100100010101001000000000000011000011110000000000000010010010 1001000011110110110001000110100010001001000110110100000000000001010000 1110000010011011000001010010001001011111110100001110110000000000001001 1000110110000010000010011000110110000010000000101000011000010000101010 101111101011111101010110110100101101001011010001110100011101000110
已知参考信息
(length = 2, value = 2) (length = 1, value = 0) 00010 10 00001 0
核心困惑
文档明确说明二进制片段00100 1111对应数值15,但我完全搞不懂这个推导逻辑。
自行编写的Python代码
def getDivision(code): if not code: return "Unknown division code" base64data = base64.b64decode(code) binaryData = "" for x in base64data: a = bin(x)[2:] while len(a) < 8: a = "0" + a binaryData = binaryData + a header = int(binaryData[12:17], 2) code = binaryData[17:17 + header] print(code)
希望有人能帮我解释这段二进制到数值的推导过程。
内容的提问来源于stack exchange,提问作者Lynchie
相关产品推荐
相关产品推荐

