Python đã ký hex thành thập phân

Trong bài viết này, chúng ta sẽ tìm hiểu về lời giải cho bài toán đưa ra dưới đây

Tuyên bố vấn đề − Chúng ta được cung cấp một chuỗi thập lục phân, chúng ta cần chuyển đổi nó thành số thập phân tương đương

Chúng tôi có hai cách tiếp cận để giải quyết vấn đề−

  • Cách tiếp cận vũ phu
  • Sử dụng mô-đun tích hợp

Phương pháp Brute-Force

Ở đây chúng tôi nhờ sự trợ giúp của chức năng truyền kiểu rõ ràng i. e. số nguyên. Hàm này nhận hai đối số i. e. hex tương đương và cơ số i. e. [16]. Hàm này được sử dụng để chuyển đổi một chuỗi thập lục phân thành số thập phân tương đương của nó trong một loại số nguyên, có thể được đánh máy thêm về định dạng chuỗi

Thí dụ

Bản thử trực tiếp

#input string
string = 'F'
# converting hexadecimal string to decimal
res = int[string, 16]
# print result
print["The decimal number associated with hexadecimal string is : " + str[res]]

đầu ra

The decimal number associated with hexadecimal string is: 15

Sử dụng mô-đun “ast” tích hợp

Ở đây chúng tôi sử dụng hàm literal_eval có sẵn trong mô-đun ast, chúng tôi có thể dự đoán cơ sở của giá trị tương đương thập lục phân đã cho và sau đó chuyển đổi thành tương đương thập phân của nó. Ở đây chúng tôi sử dụng khái niệm đánh giá theo nghĩa đen

Để chuyển đổi một chuỗi thập lục phân thành một số nguyên, hãy chuyển chuỗi đó làm đối số đầu tiên vào hàm

0x0   -->   0
0x4   -->   4
0x8   -->   8
0x12   -->   18
0x16   -->   22
0x20   -->   32
0x24   -->   36
0x28   -->   40
1 tích hợp của Python. Sử dụng
0x0   -->   0
0x4   -->   4
0x8   -->   8
0x12   -->   18
0x16   -->   22
0x20   -->   32
0x24   -->   36
0x28   -->   40
2 làm đối số thứ hai của hàm
0x0   -->   0
0x4   -->   4
0x8   -->   8
0x12   -->   18
0x16   -->   22
0x20   -->   32
0x24   -->   36
0x28   -->   40
1 để xác định rằng chuỗi đã cho là một số hex. Hàm
0x0   -->   0
0x4   -->   4
0x8   -->   8
0x12   -->   18
0x16   -->   22
0x20   -->   32
0x24   -->   36
0x28   -->   40
1 sau đó sẽ chuyển đổi chuỗi hex thành số nguyên có cơ số 10 và trả về kết quả

Đây là một ví dụ tối thiểu

>>> int['0xff', base=16]
255

ví dụ

Và đây là cách bạn có thể chuyển đổi các ví dụ bổ sung được hiển thị ở trên

>>> int['0x0', base=16]
0
>>> int['0x4', base=16]
4
>>> int['0x8', base=16]
8
>>> int['0x12', base=16]
18
>>> int['0x16', base=16]
22
>>> int['0x20', base=16]
32
>>> int['0x24', base=16]
36
>>> int['0x28', base=16]
40

Bạn thực sự không cần sử dụng tiền tố

0x0   -->   0
0x4   -->   4
0x8   -->   8
0x12   -->   18
0x16   -->   22
0x20   -->   32
0x24   -->   36
0x28   -->   40
5 vì đối số thứ hai của bạn đã xác định rõ ràng rằng chuỗi đã cho là một số thập lục phân

>>> int['0', base=16]
0
>>> int['4', base=16]
4
>>> int['8', base=16]
8
>>> int['12', base=16]
18
>>> int['16', base=16]
22
>>> int['20', base=16]
32
>>> int['24', base=16]
36
>>> int['28', base=16]
40

Tuy nhiên, bỏ qua cơ sở nhưng để lại tiền tố làm tăng

0x0   -->   0
0x4   -->   4
0x8   -->   8
0x12   -->   18
0x16   -->   22
0x20   -->   32
0x24   -->   36
0x28   -->   40
6

>>> int['0x28']
Traceback [most recent call last]:
  File "", line 1, in 
    int['0x28']
ValueError: invalid literal for int[] with base 10: '0x28'

Nó giả định rằng chuỗi đầu vào ở cơ số 10 trong khi thực tế không phải vậy

💡 Lưu ý. Mặc dù việc chuyển một chuỗi có tiền tố

0x0   -->   0
0x4   -->   4
0x8   -->   8
0x12   -->   18
0x16   -->   22
0x20   -->   32
0x24   -->   36
0x28   -->   40
7 vào hàm
0x0   -->   0
0x4   -->   4
0x8   -->   8
0x12   -->   18
0x16   -->   22
0x20   -->   32
0x24   -->   36
0x28   -->   40
1 là rõ ràng, nhưng hàm
0x0   -->   0
0x4   -->   4
0x8   -->   8
0x12   -->   18
0x16   -->   22
0x20   -->   32
0x24   -->   36
0x28   -->   40
1 của Python không chấp nhận nó nếu bạn cũng không xác định cơ số. Điều này có thể được khắc phục trong các phiên bản sau

Trên thực tế, bạn có thể chỉ định đối số cơ sở là 0 để bật tính năng đoán cơ sở—dù sao đó cũng phải là hành vi mặc định

Đoán cơ sở

Bạn có thể chuyển một chuỗi có tiền tố

0x0   -->   0
0x4   -->   4
0x8   -->   8
0x12   -->   18
0x16   -->   22
0x20   -->   32
0x24   -->   36
0x28   -->   40
7 vào hàm
0x0   -->   0
0x4   -->   4
0x8   -->   8
0x12   -->   18
0x16   -->   22
0x20   -->   32
0x24   -->   36
0x28   -->   40
1 và đặt cơ sở thành 0 để bật tính năng đoán cơ sở trong Python. Điều này sử dụng tiền tố để xác định cơ số một cách tự động—mà bạn không cần phải đặt nó thành
>>> int['0xff', base=16]
255
2. Tuy nhiên, bạn vẫn phải đặt nó thành
>>> int['0xff', base=16]
255
3 để lợi ích là không đáng kể trong thực tế

>>> int['0x9', base=16]
9
>>> int['0x9', base=0]
9
>>> int['0x9', 0]
9

Chuyển đổi chữ Hex thành Int

Nếu bạn không có chuỗi hex nhưng có số hex—được gọi là ký tự—chẳng hạn như

>>> int['0xff', base=16]
255
4, bạn thậm chí không cần hàm
0x0   -->   0
0x4   -->   4
0x8   -->   8
0x12   -->   18
0x16   -->   22
0x20   -->   32
0x24   -->   36
0x28   -->   40
1 vì Python sẽ tự động chuyển đổi nó thành số thập phân

>>> 0x10
16
>>> 0xff
255

Nền int[]

Syntax: int[value [, base]]    -->   int
Đối số____6_______6Một đối tượng Python được chuyển đổi thành một số nguyên. Đối tượng giá trị phải có một phương thức
>>> int['0xff', base=16]
255
7 trả về số nguyên được liên kết—nếu không, một
>>> int['0xff', base=16]
255
8 sẽ được nâng lên.
>>> int['0xff', base=16]
255
9Một đối số số nguyên tùy chọn
>>> int['0xff', base=16]
255
9 để xác định cơ số của hệ thống số trong đối số
>>> int['0xff', base=16]
255
6. Nếu bạn đặt cơ sở, đối số
>>> int['0xff', base=16]
255
6 phải là một chuỗi. Đối số
>>> int['0xff', base=16]
255
9 xác định cách diễn giải đối số chuỗi. Giá trị trả về_______7_______4Trả về một số nguyên sau khi chuyển đổi đối số đầu vào
>>> int['0xff', base=16]
255
6 bằng cách sử dụng phương thức
>>> int['0xff', base=16]
255
7 cần thiết cho quá trình chuyển đổi

Hàm int[] trong Python


Xem video này trên YouTube

Bạn vẫn cần thêm thông tin cơ bản về hàm

0x0   -->   0
0x4   -->   4
0x8   -->   8
0x12   -->   18
0x16   -->   22
0x20   -->   32
0x24   -->   36
0x28   -->   40
1 tích hợp sẵn của Python chứ?

Hướng dẫn liên quan. Chức năng

0x0   -->   0
0x4   -->   4
0x8   -->   8
0x12   -->   18
0x16   -->   22
0x20   -->   32
0x24   -->   36
0x28   -->   40
1 tích hợp sẵn của Python

Bảng Hex sang Int

Để giải trí, đây là phép chuyển đổi từ hex sang int của lũy thừa hai

Hexadecimal LiteralDecimal Literal1122448810hex16dec20hex32dec40hex64dec80hex128dec100hex256dec200hex512dec400hex1024dec800hex2048dec1000hex4096dec2000hex8192dec4000hex16,384dec8000hex32,768dec10000hex65,536dec

👉 Hướng dẫn đề xuất. Chuyển đổi chuỗi Hex thành byte

Nếu bạn muốn tìm hiểu cách chuyển đổi không chỉ một mà nhiều số nguyên thành một chuỗi hex duy nhất, hãy xem hướng dẫn chuyên sâu của chúng tôi trên blog Finxter

Chris

Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính

Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới

Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây

Làm cách nào để chuyển đổi hệ thập lục phân thành int trong Python?

Bạn có thể chuyển đổi chuỗi lục giác thành số nguyên trong Python bằng cách sử dụng phương thức literal_eval[] của thư viện ast [Cây cú pháp trừu tượng] . Ta phải truyền chuỗi hex cho hàm literal_eval[], không có tham số, hàm chuyển chuỗi hex thành số nguyên.

làm gì {. 02x có nghĩa là gì trong Python?

Số 02x cho Python biết chúng tôi muốn số được biểu thị dưới dạng số thập lục phân có 2 chữ số, trong đó mọi chữ số bị thiếu đều được đệm bằng số 0 .

Làm cách nào để chuyển đổi hex thành thập phân?

Số thập lục phân đã cho là 7CF. Để chuyển đổi số này thành hệ thống số thập phân, hãy nhân mỗi chữ số với lũy thừa 16 bắt đầu từ hàng đơn vị của số đó . Từ đó có thể xác định quy tắc chuyển đổi từ số hex sang số thập phân.

Làm cách nào để chuyển đổi hệ thập lục phân sang int?

Để chuyển đổi chuỗi thập lục phân thành số .
Sử dụng phương thức ToInt32[String, Int32] để chuyển đổi số được biểu thị trong cơ số 16 thành số nguyên. Đối số đầu tiên của phương thức ToInt32[String, Int32] là chuỗi cần chuyển đổi. .
Lưu ý rằng chuỗi thập lục phân có các hạn chế sau. Nó không thể bao gồm tiền tố &h

Chủ Đề