Низ до шестнадесетичен в Python

String Hexadecimal Python



Шестнадесетичната база има основа от 16 и можем да представим низ в шестнадесетичен формат, използвайки префикса 0x.

Можем да преобразуваме низ в шестнадесетичен, като използваме следните методи:







  1. Използвайки метода hex (n)
  2. Използване на метода encode ()
  3. Използване на метода literal_eval ()

Метод 1: Използване на hex ()

Можем да преобразуваме низ в шестнадесетичен с помощта на метода hex (). Методът hex () приема параметъра в целочислена форма и за това първо трябва да преобразуваме низа в цяло число и след това да предадем тази стойност на метода hex (), както е показано по -долу:



Пример: string_to_hex.py

1
2
3
4
5
6
7
8
9
10
единадесет
12
13
14
петнадесет
16
17
18
19
двайсет
двадесет и едно
# string_to_hex.py

стр = „245FC“

# предайте str на int (), за да го преобразувате в base16 int

base16INT= int(стр, 16)

# отпечатайте преобразувания низ в base16 шестнадесетична int стойност

печат('стойност',base16INT)

печат('стойност',Тип(base16INT))

hex_value= шестнадесетичен(base16INT)

печат(hex_value)

# проверка на типа на стойността

печат(Тип(hex_value))

Изход:

1
2
3
4
5
6
7
стойност148988

стойност<клас 'int'>

0x245fc

<клас 'str'>

Ред 3: Създадохме низ за демонстрацията.

Ред 6: Предаваме този низ на метода int () с основата 16. Сега този метод int () ще преобразува низ в шестнадесетична цяло число.



Ред 9: Отпечатваме стойността, която получаваме след преобразуването на низа в цяло шестнадесетично число.





Ред 10: Ние също отпечатваме типа стойност, за да потвърдим, че низът сега е под формата на цяло число.

Ред 12: Знаем, че вграденият метод hex (n) приема целочислената стойност, превръщайки цялото число в шестнадесетичния низ. Ето защо трябва да преобразуваме низ в цяло число, за да го предадем в метода hex (). Предадохме тази стойност base16INT на метода hex () и получихме hex_value, шестнадесетичен низ.



Ред 13: Отпечатваме тази преобразувана шестнадесетична стойност.

Ред 16: Отпечатваме типа на преобразуваната шестнадесетична стойност, която показва в изхода, че е низ.

И така, сега преобразувахме низа в шестнадесетична стойност.

Метод 2: Конвертирайте низ в шестнадесетичен с помощта на encode ()

Можем също да преобразуваме нормалния низ в шестнадесетичен низ, който няма шестнадесетичен знак. За това трябва да преобразуваме низ в байт, използвайки метода encode (), и след това можем да преобразуваме низ в шестнадесетичен, както е показано по -долу:

1
2
3
4
5
6
7
8
9
10
единадесет
12
13
14
петнадесет
16
17
18
19
двайсет
двадесет и едно
22
2. 3
24
25
# string_to_hex_utf8.py



# конвертирате низ в байтове

стр= 'linuxhint'.кодират('utf-8')



# отпечатайте преобразувания низ в байтове

печат(стр)



# конвертирате низовите байтове в шестнадесетичния низ

hex_str= стр.шестнадесетичен()



# отпечатайте преобразувания тип шестнадесетична стойност

печат(Тип(hex_str))

Изход:

1
2
3
б'linuxhint'

<клас 'str'>

Ред 4 до 7: Създадохме низ, който няма шестнадесетичен знак. И след това преобразувайте тези низове в байтове, като използвате метода encode (). И след това отпечатваме тези байтове, които можем да видим в изходния ред номер 1.

Ред 10 до 13: Извикваме метода hex () с помощта на оператора dot и сега байтовете се преобразуват в шестнадесетичната низова стойност, която ни е необходима. За да потвърдим типа на низа с резултата, просто отпечатваме ред номер 13 и изходът показва, че той е в шестнадесетичен низ.

Метод 3. Използване на метода ast.literal_eval ()

Можем също да преобразуваме низа в цяло число, използвайки метода на библиотеката ast literal_eval. Този метод също преобразува низ в цяло число, за да използва метода hex () за преобразуване на низ в шестнадесетичен низ. Но този метод приема само 0x префикс знаци.

1
2
3
4
5
6
7
8
9
10
единадесет
12
13
14
петнадесет
16
17
18
19
двайсет
двадесет и едно
22
2. 3
24
25
26
27
28
29
30
31
32
33
# string_to_hex_utf8.py

отклонвносliteral_eval

стр = „0xAAA“



# преобразува низ в цяло число

convert_str=literal_eval(стр)



# отпечатайте стойността и типа на convert_str

печат(convert_str)

печат('Тип', Тип(convert_str))



# предайте convert_str на метода hex ()

hex_value= шестнадесетичен(convert_str)

печат(hex_value)



# проверка на типа на стойността

печат(Тип(hex_value))

Изход:

1
2
3
4
5
6
7
2730

Тип <клас 'int'>

0xaaa

<клас 'str'>

Ред 2 до 10: Импортираме метода literal_eval () от библиотеката ast. След това създаваме низ с префикс 0x. След това предадохме този низ на метода literal_eval () и го преобразувахме в цяло число. За да потвърдим, че изходът е в цяло число, го отпечатваме в ред номер 9. Отпечатваме и типа на изхода, който показва, че е цяло число.

Ред 13 до 17: Знаем вградения шестнадесетичен (n) метод, който приема целочислената стойност, превръщайки цялото число в шестнадесетичния низ. Ето защо трябва да преобразуваме низ в цяло число, за да го предадем в метода hex (). Предадохме тази стойност convert_str (integer) на метода hex () и получихме hex_value, шестнадесетичен низ. Отпечатваме тази преобразувана шестнадесетична стойност. Отпечатваме и типа на преобразуваната шестнадесетична стойност, което показва, че е шестнадесетичен низ.

Изключение за грешка (TypeError):

Понякога ще получаваме грешки, докато преобразуваме низа в шестнадесетичен низ. Причината за това е методът hex () приема само целочислената стойност като параметър.

1
2
3
4
5
6
7
string_hex= '0xFF'



hex_output= шестнадесетичен(string_hex)

печат(hex_output)

Изход:

1
TypeError:'str' обектне може да се тълкувакатоцяло число

Заключение:

И така, ние сме виждали различни методи за преобразуване на низ в шестнадесетичен малък регистър. Методът hex () е много популярен поради лесната си употреба. Но понякога искаме да преобразуваме низ, без да използваме префикса 0x, така че в този случай можем да използваме метода bytes encode (), както вече видяхме в статията.

Кодът на тази статия е достъпен на долната връзка на github:

https://github.com/shekharpandey89/string-to-hex-conversion