Python thay đổi tuổi thọ của chuỗi hex

Tôi không biết làm thế nào để có được kết quả này, tôi đã thử các kỹ thuật cắt và di chuyển khác nhau để có được kết quả mà tôi mong muốn từ mỗi 4 số nguyên nhưng đôi khi số 0 cản trở kết quả chính xác

Hướng dẫn này sẽ trình bày cách chuyển đổi chuỗi hex thành

hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
3 trong Python. Nó sẽ bao gồm các định dạng hex khác nhau như có dấu, little và big-endian, hệ thập lục phân có chú thích
hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
4 và chuỗi hex mặc định

Sử dụng
hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
5 để chuyển đổi Hex thành Int trong Python

Cách phổ biến và hiệu quả nhất để chuyển đổi hex thành số nguyên trong Python là sử dụng hàm truyền kiểu

hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
5

Hàm này chấp nhận hai đối số. một đối số bắt buộc, là giá trị được chuyển đổi và đối số tùy chọn thứ hai, là cơ sở của định dạng số với giá trị mặc định là

hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
0

Các định dạng số khác là

hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
1 cho hệ nhị phân,
hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
2 cho hệ bát phân và
hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
3 cho hệ thập lục phân. Nếu bạn đặt
hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
4 làm đối số cho giá trị cơ sở, nó sẽ lấy định dạng số từ tiền tố của giá trị. Nếu không có bất kỳ tiền tố nào, nó sẽ tự động nhận dạng nó dưới dạng số thập phân,
hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
5 cho hệ nhị phân,
hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
6 cho hệ bát phân và
hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
4 cho hệ thập lục phân

Chuyển đổi chuỗi Hex không có tiền tố thành Int trong Python

Nếu chuỗi thập lục phân không có tiền tố, thì hãy chỉ định giá trị cơ sở của hàm

hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
5 là 16

Ví dụ

hex_val = 'beef101'

print[int[hex_val, 16]]

đầu ra

Kết quả là chuyển đổi số thập phân hoặc số nguyên của giá trị hex

hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
9

Chuyển đổi chuỗi Hex có tiền tố thành Int trong Python

Nếu chuỗi hex có tiền tố

hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
4, sau đó thay đổi đối số giá trị cơ sở thành
hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
4 để tự động phát hiện tiền tố

Bạn vẫn có thể chuyển

hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
3 làm cơ sở, nhưng nếu bạn đang xử lý nhiều giá trị với các định dạng số khác nhau, thì chuyển
hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
4 là cách tốt nhất

hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]

đầu ra

Chuyển đổi chuỗi Hex Little và Big Endian thành Int trong Python

Đơn đặt hàng byte endian nhỏ và big-endia là hai loại hệ thống đặt hàng cho hệ thập lục phân. Thứ tự mặc định là little-endian, đặt số quan trọng nhất ở phần ngoài cùng bên phải của chuỗi, trong khi big-endian thì ngược lại

Với ý nghĩ đó, tất cả những gì chúng ta phải xem xét là chuyển đổi giá trị thập lục phân lớn thành giá trị cuối nhỏ. Sau đó, chuyển đổi thông thường có thể được thực hiện trên nó

Để chuyển đổi một chuỗi thập lục phân lớn về cuối thành một chuỗi nhỏ, hãy sử dụng

hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
34 và sử dụng hàm
hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
35 trên kết quả. Sau đó, chuyển đổi giá trị thập lục phân trở lại chuỗi và chuyển đổi thành số nguyên

hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
3

Để tóm tắt khối mã này

  • Gọi
    hex_val = '0xdeadcab'
    
    print[int[hex_val, 0]]
    print[int[hex_val, 16]]
    
    34 để chuyển đổi chuỗi hex big-endian thành giá trị thập lục phân mảng byte
  • Đảo ngược mảng byte để chuyển đổi định dạng big-endian thành định dạng little-endian
  • Chuyển đổi giá trị mảng byte trở lại thành định dạng chuỗi hex trong little-endian
  • Chuyển đổi chuỗi thành số nguyên bằng cách sử dụng
    hex_val = '0xdeadcab'
    
    print[int[hex_val, 0]]
    print[int[hex_val, 16]]
    
    5

đầu ra

hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
7

Chuyển đổi Hex thành Số nguyên đã ký trong Python

Việc chuyển đổi bất kỳ định dạng số nào thành số nguyên có dấu sẽ cần một phép toán có tên là Phép cộng của hai, đây là phép toán theo bit để tính toán các số có dấu

Vì vậy, trước khi chúng ta có thể chuyển đổi hệ thập lục phân thành một số nguyên có dấu, chúng ta cần xác định một hàm sẽ thực hiện phép toán Phần bù của hai

hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
8

Bit ngoài cùng bên trái trong một giá trị nhị phân được gọi là bit đã ký, xác định xem số nguyên là dương hay âm. Hàm này sẽ dự trữ bit đó làm bit đã ký và dịch chuyển các bit khác để bù bằng cách sử dụng toán tử dịch chuyển trái theo chiều bit

hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
38

Bây giờ, chuyển sang chuyển đổi thực tế của giá trị hex sang int đã ký

hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
0

đầu ra

Bây giờ, chúng ta đã hoàn thành việc chuyển đổi một chuỗi hex thành một số nguyên có dấu

Tóm lại, chúng tôi đã đề cập đến việc chuyển đổi các loại định dạng thập lục phân khác nhau thành số nguyên có dấu và không dấu. Sử dụng

hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
5 với các đối số giá trị và cơ sở để chuyển đổi một số hex thành một số nguyên không dấu

Nếu hệ thập lục phân ở định dạng big-endian, trước tiên hãy chuyển đổi nó thành định dạng little-endian bằng cách sử dụng

hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
34 và
hex_val = '0xdeadcab'

print[int[hex_val, 0]]
print[int[hex_val, 16]]
35

Cuối cùng, nếu bạn cần chuyển đổi một chuỗi hex thành một số nguyên có dấu, thì hãy thực hiện thao tác Bổ sung hai trên giá trị thập lục phân trên đó để nhận giá trị số nguyên có dấu

Chủ Đề