在Python 2.7 中将数据编码为 HEX 并在最后得到一个 L。为什么?

Encode data to HEX and get an L at the end in Python 2.7. Why?

我要求测量设备给我一些数据。首先它告诉我存储中有多少字节的数据。它总是 14。然后它给了我必须编码成十六进制的数据。 Python 2.7 不能使用较新的版本。第 6 到 10 行告诉设备给我测量数据。 第 12 到 14 行是十六进制的编码。在其他程序中它有效。但是当我打印结果(第 14 行)时,我得到一个 13 字节加 1 的十六进制数,这不可能是正确的,因为它有一个 L 等结尾。我想这是一些长或什么的。我不需要最后一个字节。但我确实认为它也改变了数据,这是从第 15 行及以上的行中挑选出来的。起初在十六进制。然后转换成Int.

L是否对数据有影响? 我该如何解决?

1       ap.write(b"ML[=11=]")
        rmemb = ap.read(2)
        print(rmemb)
        rmemb = int(rmemb)+1
5       rmem = rmemb          #must be and is 14 Bytes

        addmem = ("MR:%s[=11=]" % rmem)
   #    addmem = ("MR:14[=11=]")
        ap.write(addmem.encode())
10      time.sleep(1)

        test = ap.read(rmem)
        result = hex(int(test.encode('hex'), 16))
        print(result)
15      ftflash = result[12:20]
        ftbg = result[20:28]
        print(ftflash)
        print(ftbg)
        ftflash = int(ftflash, 16)
20 #    print(ftflash)
        ftbg = int(ftbg, 16)
   #    print(ftbg)

输出:

14
0x11bd5084c0b000001ce00000093L
b000001c
e0000009

Python 2 有两个内置整数类型,intlonghex returns 表示 Python 十六进制文字的字符串,在 Python 2 中,这意味着 longs 在末尾得到一个 L , 表示它是 long.