在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 有两个内置整数类型,int
和 long
。 hex
returns 表示 Python 十六进制文字的字符串,在 Python 2 中,这意味着 long
s 在末尾得到一个 L
, 表示它是 long
.
我要求测量设备给我一些数据。首先它告诉我存储中有多少字节的数据。它总是 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 有两个内置整数类型,int
和 long
。 hex
returns 表示 Python 十六进制文字的字符串,在 Python 2 中,这意味着 long
s 在末尾得到一个 L
, 表示它是 long
.