Python,如何读取文件十六进制和Shift It

时间:2015-09-26 19:38:21

标签: python hex decimal

在提交新问题之前,我搜索了这个,但是我没有找到一个好的答案,我想读取任何类型扩展的文件的一些字节,我想读取十六进制并将其向左或向右移动然后覆盖它。我可以用这段代码读取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中左移或右移十六进制吗?

1 个答案:

答案 0 :(得分:2)

使用format(shift,'x')代替hex(shift)

print format(int("af5f3fee",16)*2,'x')

结果为'15ebe7fdc'