在提交新问题之前,我搜索了这个,但是我没有找到一个好的答案,我想读取任何类型扩展的文件的一些字节,我想读取十六进制并将其向左或向右移动然后覆盖它。我可以用这段代码读取4个字节:
@using (Html.BeginForm("MyAction", "MyController", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
// name your variable same as your collection name to model binder bind it to your collation
@foreach (var InputFiles Model.InputFiles)
{
@Html.EditorFor(m => InputFiles)
}
}
结果:
FILE = open(dst,"r+b")
FILE.seek(1,0)
byte = FILE.read(4)
my_hex = binascii.hexlify(byte)
现在我需要移动它,但我必须将它转换为int然后移动它,例如:
sample my hex: af5f3fee
好吧,现在我有一个小数移位,但现在我需要将其转换为十六进制,当我将其转换为十六进制的十六进制()我有2个问题:
1.如何在frist中删除0x?
2.当我转换它时,我会在这个小数的末尾看到字符“L”,例如:
shift = (int(my_hex,16)<<1)
结果: 在shift之前= af5f3fee 在shift = 0x15ebe7fdcL之后 为什么?
我可以用简单的方法或方法在python中左移或右移十六进制吗?
答案 0 :(得分:2)
使用format(shift,'x')
代替hex(shift)
print format(int("af5f3fee",16)*2,'x')
结果为'15ebe7fdc'