Hướng dẫn convert decimal array to hex python - chuyển đổi mảng thập phân thành hex python

Làm cách nào để thay đổi dec_array của tôi [ví dụ: tháng 12-marray = 50, 123, 175, 13] thành hex_array [32, 7b, af, oa]? Hex [] hàm chỉ hoạt động với các ký tự đơn.

Đã hỏi ngày 16 tháng 5 năm 2015 lúc 12:16May 16, 2015 at 12:16

5

Sử dụng toàn bộ danh sách có lẽ sẽ là cách dễ nhất để làm điều này:

hex_array = [hex[x] for x in dec_array]

Và nếu bạn muốn loại bỏ

hex_array = [hex[x][2:] for x in dec_array]
8 ở đầu mỗi phần tử:

hex_array = [hex[x][2:] for x in dec_array]

Đã trả lời ngày 16 tháng 5 năm 2015 lúc 12:19May 16, 2015 at 12:19

MureinikmureinikMureinik

285K51 Huy hiệu vàng293 Huy hiệu bạc331 Huy hiệu Đồng51 gold badges293 silver badges331 bronze badges

3

Hoặc sử dụng hex, phải hoạt động.

>>> d = 30
>>> hex[d].split['x'][1]
'1e'

Đối với tiêu cực, tôi đã tìm thấy giải pháp này

def tohex[val]:
  return hex[[val + [1 > d = 30
>>> hex[d].split['x'][1]
'1e'
0 tương đương với một byte hoặc 8 bit.

Mỗi

>>> d = 30
>>> hex[d].split['x'][1]
'1e'
0 chuyển đổi thành
>>> d = 30
>>> hex[d].split['x'][1]
'1e'
2.

Cách mà nhị phân này sau đó được cho là được giải thích là.

0 1 2 3 4 5 6 7 8 9 10
0 0 1 1 0 0 0 1 ......

Ở đây bạn có thể thấy tôi nhận được các giá trị thập phân 2,3,7 từ

>>> d = 30
>>> hex[d].split['x'][1]
'1e'
0.

Hy vọng điều này có ý nghĩa. Mọi sự trợ giúp sẽ rất được trân trọng.

Santosh Kumar

25.3K18 Huy hiệu vàng67 Huy hiệu bạc115 Huy hiệu đồng18 gold badges67 silver badges115 bronze badges

Hỏi ngày 8 tháng 8 năm 2012 lúc 20:07Aug 8, 2012 at 20:07

4

Biến đổi mọi thứ trong một chuỗi bit lớn và sau đó liệt kê nó. Chủ yếu tương tự như câu trả lời của Blaxpirit nhưng nó không sử dụng hack

>>> d = 30
>>> hex[d].split['x'][1]
'1e'
4.

array = [0x31, 0x31, 0, 0, 0]
[i for i, x in enumerate["".join[format[a, "08b"] for a in array]] if x == '1']

Kết quả trong

[2, 3, 7, 10, 11, 15]

Đã trả lời ngày 8 tháng 8 năm 2012 lúc 20:50Aug 8, 2012 at 20:50

Mitchmitchmitch

1.81015 huy hiệu bạc12 Huy hiệu đồng15 silver badges12 bronze badges

2

Vì vậy, chúng tôi có các số HEX trong một chuỗi được phân tách không gian.

s = '31 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'

Bây giờ chúng tôi phân chia chuỗi, chuyển đổi từng byte từ chuỗi HEX sang int [

>>> d = 30
>>> hex[d].split['x'][1]
'1e'
5], sau đó chuyển đổi nó thành chuỗi nhị phân [
>>> d = 30
>>> hex[d].split['x'][1]
'1e'
6], sau đó lấy đi
>>> d = 30
>>> hex[d].split['x'][1]
'1e'
7 bằng
>>> d = 30
>>> hex[d].split['x'][1]
'1e'
8, thêm Zeroes ở đầu để chuỗi chính xác 8 [
>>> d = 30
>>> hex[d].split['x'][1]
'1e'
9] . Sau đó, chúng tôi tham gia tất cả các chuỗi bit với nhau trong một chuỗi.

s = ''.join[bin[int[b, 16]][2:].zfill[8] for b in s.split[]]
# Now `s` is '0011000100110001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
  • Một thay thế cho dòng trên, hoạt động trong Python 2.5:
    trans = {'0':'0000','1':'0001','2':'0010','3':'0011','4':'0100','5':'0101','6':'0110','7':'0111','8':'1000','9':'1001','a':'1010','b':'1011','c':'1100','d':'1101','e':'1110','f':'1111',' ':''}
    s = ''.join[trans[c] for c in s.lower[]]

Sau đó, chúng tôi

def tohex[val]:
  return hex[[val + [1 

Bài Viết Liên Quan

Chủ Đề