Hướng dẫn convert binary file to hex python - chuyển đổi tệp nhị phân sang hex python

Giải pháp đơn giản là

hexlist = map(''.join, zip(hexdata[::2], hexdata[1::2]))
3:

import binascii

# Open in binary mode (so you don't read two byte line endings on Windows as one byte)
# and use with statement (always do this to avoid leaked file descriptors, unflushed files)
with open('data.geno', 'rb') as f:
    # Slurp the whole file and efficiently convert it to hex all at once
    hexdata = binascii.hexlify(f.read())

Điều này chỉ giúp bạn có một

hexlist = map(''.join, zip(hexdata[::2], hexdata[1::2]))
4 của các giá trị hex, nhưng nó làm nó nhanh hơn nhiều so với những gì bạn đang cố gắng làm. Nếu bạn thực sự muốn một loạt các chuỗi dài 2 chuỗi cho mỗi byte, bạn có thể chuyển đổi kết quả một cách dễ dàng:

hexlist = map(''.join, zip(hexdata[::2], hexdata[1::2]))

sẽ tạo ra danh sách Len 2

hexlist = map(''.join, zip(hexdata[::2], hexdata[1::2]))
4 tương ứng với mã hóa hex của mỗi byte. Để tránh các bản sao tạm thời của
hexlist = map(''.join, zip(hexdata[::2], hexdata[1::2]))
6, bạn có thể sử dụng một cách tiếp cận tương tự nhưng ít trực quan hơn, tránh cắt lát bằng cách sử dụng cùng một trình lặp lại hai lần với
hexlist = map(''.join, zip(hexdata[::2], hexdata[1::2]))
7:

hexlist = map(''.join, zip(*[iter(hexdata)]*2))

Update:

Đối với những người trên Python 3.5 trở lên, các đối tượng

hexlist = map(''.join, zip(hexdata[::2], hexdata[1::2]))
8 đã tạo ra một phương thức
hexlist = map(''.join, zip(hexdata[::2], hexdata[1::2]))
9, do đó, không có mô -đun nào được yêu cầu để chuyển đổi từ dữ liệu nhị phân thô sang HEX ASCII. Khối mã ở trên cùng có thể được đơn giản hóa thành chỉ:

with open('data.geno', 'rb') as f:
    hexdata = f.read().hex()

  1. Sử dụng
    with open('data.geno', 'rb') as f:
        hexdata = f.read().hex()
    
    0 để chuyển đổi
    hexlist = map(''.join, zip(*[iter(hexdata)]*2))
    
    2 thành
    hexlist = map(''.join, zip(*[iter(hexdata)]*2))
    
    3 trong Python
  2. Được giới thiệu với Python 3.6, nó tương đối là phương thức mới nhất trong Python để thực hiện định dạng chuỗi. Nó có thể được sử dụng trong các phiên bản mới hơn và mới nhất của Python.
  3. Nó hiệu quả hơn hai đồng nghiệp khác, dấu hiệu
    0x2d
    
    6 và
    0x2d
    
    7, vì nó nhanh hơn và dễ hiểu hơn. Nó cũng giúp thực hiện định dạng chuỗi trong Python với tốc độ nhanh hơn hai phương pháp khác.
  4. Sử dụng chức năng
    hexlist = map(''.join, zip(*[iter(hexdata)]*2))
    
    7 để chuyển đổi
    hexlist = map(''.join, zip(*[iter(hexdata)]*2))
    
    2 thành
    hexlist = map(''.join, zip(*[iter(hexdata)]*2))
    
    3 trong Python
  5. Sử dụng
    with open('data.geno', 'rb') as f:
        hexdata = f.read().hex()
    
    0 để chuyển đổi
    hexlist = map(''.join, zip(*[iter(hexdata)]*2))
    
    2 thành
    hexlist = map(''.join, zip(*[iter(hexdata)]*2))
    
    3 trong Python

Được giới thiệu với Python 3.6, nó tương đối là phương thức mới nhất trong Python để thực hiện định dạng chuỗi. Nó có thể được sử dụng trong các phiên bản mới hơn và mới nhất của Python.

Sử dụng with open('data.geno', 'rb') as f: hexdata = f.read().hex() 0 để chuyển đổi hexlist = map(''.join, zip(*[iter(hexdata)]*2)) 2 thành hexlist = map(''.join, zip(*[iter(hexdata)]*2)) 3 trong Python

Được giới thiệu với Python 3.6, nó tương đối là phương thức mới nhất trong Python để thực hiện định dạng chuỗi. Nó có thể được sử dụng trong các phiên bản mới hơn và mới nhất của Python.

Nó hiệu quả hơn hai đồng nghiệp khác, dấu hiệu

0x2d
6 và
0x2d
7, vì nó nhanh hơn và dễ hiểu hơn. Nó cũng giúp thực hiện định dạng chuỗi trong Python với tốc độ nhanh hơn hai phương pháp khác.

print("Enter the Binary Number: ", end="")
bnum = int(input())

h = 0
m = 1
chk = 1
i = 0
hnum = []
while bnum!=0:
    rem = bnum%10
    h = h + (rem*m)
    if chk%4==0:
        if h<10:
            hnum.insert(i, chr(h+48))
        else:
            hnum.insert(i, chr(h+55))
        m = 1
        h = 0
        chk = 1
        i = i+1
    else:
        m = m*2
        chk = chk+1
    bnum = int(bnum/10)

if chk!=1:
    hnum.insert(i, chr(h+48))
if chk==1:
    i = i-1

print("\nEquivalent Hexadecimal Value = ", end="")
while i>=0:
    print(end=hnum[i])
    i = i-1
print()

Mã trên cung cấp đầu ra sau.

Enter the Binary Number: 0101101
Equivalent Hexadecimal Value = 2D

Được giới thiệu với Python 3.6, nó tương đối là phương thức mới nhất trong Python để thực hiện định dạng chuỗi. Nó có thể được sử dụng trong các phiên bản mới hơn và mới nhất của Python.

Nó hiệu quả hơn hai đồng nghiệp khác, dấu hiệu

0x2d
6 và
0x2d
7, vì nó nhanh hơn và dễ hiểu hơn. Nó cũng giúp thực hiện định dạng chuỗi trong Python với tốc độ nhanh hơn hai phương pháp khác.

Mã sau sử dụng

with open('data.geno', 'rb') as f:
    hexdata = f.read().hex()
0 để chuyển đổi
hexlist = map(''.join, zip(*[iter(hexdata)]*2))
2 thành
hexlist = map(''.join, zip(*[iter(hexdata)]*2))
3 trong Python.

Tạo và sử dụng chức năng do người dùng xác định để chuyển đổi nhị phân thành hex trong python

print(hex(int('0101101', 2)))

Mã trên cung cấp đầu ra sau.

0x2d

Nó hiệu quả hơn hai đồng nghiệp khác, dấu hiệu 0x2d 6 và 0x2d 7, vì nó nhanh hơn và dễ hiểu hơn. Nó cũng giúp thực hiện định dạng chuỗi trong Python với tốc độ nhanh hơn hai phương pháp khác.

Mã sau sử dụng

with open('data.geno', 'rb') as f:
    hexdata = f.read().hex()
0 để chuyển đổi
hexlist = map(''.join, zip(*[iter(hexdata)]*2))
2 thành
hexlist = map(''.join, zip(*[iter(hexdata)]*2))
3 trong Python.

Tạo và sử dụng chức năng do người dùng xác định để chuyển đổi nhị phân thành hex trong python

Mã sau sử dụng mô -đun

hexlist = map(''.join, zip(hexdata[::2], hexdata[1::2]))
3 để chuyển đổi
hexlist = map(''.join, zip(*[iter(hexdata)]*2))
2 thành
hexlist = map(''.join, zip(*[iter(hexdata)]*2))
3 trong Python.

import binascii
bFile = open('ANYBINFILE.exe','rb')
bData = bFile.read(8)
print(binascii.hexlify(bData))

Sử dụng chức năng hexlist = map(''.join, zip(*[iter(hexdata)]*2)) 7 để chuyển đổi hexlist = map(''.join, zip(*[iter(hexdata)]*2)) 2 thành hexlist = map(''.join, zip(*[iter(hexdata)]*2)) 3 trong Python

Hàm

hexlist = map(''.join, zip(*[iter(hexdata)]*2))
7 là một trong những cách mà định dạng chuỗi có thể được thực hiện trong Python. Hàm
hexlist = map(''.join, zip(*[iter(hexdata)]*2))
7 được sử dụng để cung cấp chuỗi được định dạng bên trong dấu ngoặc xoăn
print(hex(int('0101101', 2)))
9.

Mã sau sử dụng hàm

hexlist = map(''.join, zip(*[iter(hexdata)]*2))
7 để chuyển đổi
hexlist = map(''.join, zip(*[iter(hexdata)]*2))
2 thành
hexlist = map(''.join, zip(*[iter(hexdata)]*2))
3 trong Python.

print("{0:0>4X}".format(int("0101101", 2)))

Mã trên cung cấp đầu ra sau.

hexlist = map(''.join, zip(hexdata[::2], hexdata[1::2]))
0

Sử dụng with open('data.geno', 'rb') as f: hexdata = f.read().hex() 0 để chuyển đổi hexlist = map(''.join, zip(*[iter(hexdata)]*2)) 2 thành hexlist = map(''.join, zip(*[iter(hexdata)]*2)) 3 trong Python

Được giới thiệu với Python 3.6, nó tương đối là phương thức mới nhất trong Python để thực hiện định dạng chuỗi. Nó có thể được sử dụng trong các phiên bản mới hơn và mới nhất của Python.

Nó hiệu quả hơn hai đồng nghiệp khác, dấu hiệu

0x2d
6 và
0x2d
7, vì nó nhanh hơn và dễ hiểu hơn. Nó cũng giúp thực hiện định dạng chuỗi trong Python với tốc độ nhanh hơn hai phương pháp khác.

Mã sau sử dụng

with open('data.geno', 'rb') as f:
    hexdata = f.read().hex()
0 để chuyển đổi
hexlist = map(''.join, zip(*[iter(hexdata)]*2))
2 thành
hexlist = map(''.join, zip(*[iter(hexdata)]*2))
3 trong Python.

hexlist = map(''.join, zip(hexdata[::2], hexdata[1::2]))
1

Mã trên cung cấp đầu ra sau.

hexlist = map(''.join, zip(hexdata[::2], hexdata[1::2]))
2