【发布时间】:2015-12-24 09:49:49
【问题描述】:
在提交新问题之前,我对此进行了搜索,但未能找到好的答案,我想读取具有任何类型扩展名的文件的一些字节,我想读取十六进制并将其向左或向右移动然后覆盖它。我可以用这段代码读取 4 个字节:
FILE = open(dst,"r+b")
FILE.seek(1,0)
byte = FILE.read(4)
my_hex = binascii.hexlify(byte)
结果:
sample my hex: af5f3fee
现在我需要转换它,但我必须将它转换为 int 然后转换它,例如:
shift = (int(my_hex,16)<<1)
好的,现在我有一个小数移位,但现在我需要将其转换为十六进制,当我通过 hex() 将其转换为十六进制时,我有 2 个问题: 1.我怎样才能删除第一个它的0x? 2. 当我转换它时,我看到这个小数点末尾的字符“L”例如:
shift= (int("af5f3fee",16)<<1)
print hex(shift)
结果: 班次前 = af5f3fee 移位后 = 0x15ebe7fdcL 为什么 ?
我可以用简单的方法或方法在 python 中向左或向右移动十六进制吗?
【问题讨论】:
-
你不能简单地乘以 2 吗?
-
结果0x15ebe7fdcL是对的!使用
print hex(shift)[2:-1]仅打印字节十六进制 -
感谢 Max ,在您的帮助下解决