السلسلة إلى Hexadecimal في Python

String Hexadecimal Python



أساس سداسي عشري هو 16 ، ويمكننا تمثيل سلسلة بتنسيق سداسي عشري باستخدام البادئة 0x.

يمكننا تحويل السلسلة إلى رقم سداسي عشري باستخدام الطرق التالية:







  1. باستخدام طريقة hex (n)
  2. باستخدام طريقة encode ()
  3. استخدام طريقة literal_eval ()

الطريقة الأولى: استخدام العلامة السداسية ()

يمكننا تحويل السلسلة إلى رقم سداسي عشري باستخدام طريقة 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 () لتحويلها إلى int

قاعدة 16INT= int(صو 16)

# طباعة السلسلة المحولة إلى قيمة int سداسية عشرية للقاعدة

مطبعة('القيمة'وقاعدة 16INT)

مطبعة('القيمة'ونوع(قاعدة 16INT))

hex_value= عرافة(قاعدة 16INT)

مطبعة(hex_value)

# chcking نوع القيمة

مطبعة(نوع(hex_value))

انتاج:

1
2
3
4
5
6
7
القيمة148988

القيمة<صف دراسي 'int'>

0x245fc

<صف دراسي 'شارع'>

السطر 3: أنشأنا سلسلة للعرض التوضيحي.

السطر 6: نقوم بتمرير هذه السلسلة إلى طريقة int () مع الأساس 16. الآن ، هذه الطريقة int () ستحول السلسلة إلى قيمة عدد صحيح سداسي عشري.



السطر 9: نقوم بطباعة القيمة التي نحصل عليها بعد تحويل السلسلة إلى عدد صحيح سداسي عشري.





السطر 10: نقوم أيضًا بطباعة نوع القيمة للتأكد من أن السلسلة أصبحت الآن في شكل عدد صحيح.

السطر 12: نحن نعلم أن طريقة hex (n) المضمنة تقبل قيمة العدد الصحيح ، وتحويل العدد الصحيح إلى سلسلة سداسية عشرية. لهذا السبب نحتاج إلى تحويل السلسلة إلى عدد صحيح لتمريرها إلى طريقة hex (). مررنا هذه القيمة base16INT إلى طريقة hex () وحصلنا على قيمة hex_value ، وهي سلسلة سداسية عشرية.



السطر 13: نطبع تلك القيمة السداسية العشرية المحولة.

السطر 16: نقوم بطباعة نوع القيمة السداسية العشرية المحولة ، والتي تظهر في الإخراج أنها نوع سلسلة.

لذلك ، قمنا الآن بتحويل السلسلة إلى قيمة سداسية عشرية.

الطريقة الثانية: تحويل السلسلة إلى رقم سداسي عشري باستخدام الترميز ()

يمكننا أيضًا تحويل السلسلة العادية إلى سلسلة سداسية عشرية لا تحتوي على أي حرف سداسي عشري. لذلك ، علينا تحويل السلسلة إلى بايت باستخدام الطريقة 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'

<صف دراسي 'شارع'>

السطر 4 إلى 7: أنشأنا سلسلة لا تحتوي على أي حرف سداسي عشري. ثم قم بتحويل هذه السلاسل إلى بايت باستخدام طريقة encode (). وبعد ذلك ، نطبع تلك البايتات ، والتي يمكننا رؤيتها في سطر الإخراج رقم 1.

السطر 10 إلى 13: نسمي طريقة hex () باستخدام عامل النقطة ، والآن يتم تحويل البايت إلى قيمة السلسلة السداسية العشرية التي طلبناها. لتأكيد نوع سلسلة النتيجة ، نقوم فقط بطباعة رقم السطر 13 ، ويظهر الإخراج أنه في سلسلة من النوع الست عشري.

الطريقة الثالثة. استخدام طريقة 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

من عندفرعيستوردالقرون الحرفي

ص = '0xAAA'



# تحويل السلسلة إلى عدد صحيح

convert_str=القرون الحرفي(ص)



# طباعة قيمة ونوع convert_str

مطبعة(convert_str)

مطبعة('نوع'و نوع(convert_str))



# قم بتمرير convert_str إلى طريقة hex ()

hex_value= عرافة(convert_str)

مطبعة(hex_value)



# chcking نوع القيمة

مطبعة(نوع(hex_value))

انتاج:

1
2
3
4
5
6
7
2730

نوع <صف دراسي 'int'>

0xaaa

<صف دراسي 'شارع'>

السطر 2 إلى 10: نستورد الطريقة literal_eval () من مكتبة ast. ثم نقوم بإنشاء سلسلة بالبادئة 0x. ثم قمنا بتمرير هذه السلسلة إلى طريقة literal_eval () وتحويلها إلى عدد صحيح. للتأكد من أن الإخراج في شكل عدد صحيح ، نطبعه في السطر رقم 9. ونطبع أيضًا نوع الإخراج ، مما يدل على أنه عدد صحيح.

السطر 13 إلى 17: نحن نعلم طريقة hex (n) المضمنة التي تقبل قيمة العدد الصحيح ، وتحويل العدد الصحيح إلى سلسلة سداسية عشرية. لهذا السبب نحتاج إلى تحويل السلسلة إلى عدد صحيح لتمريرها إلى طريقة hex (). مررنا قيمة convert_str (عددًا صحيحًا) إلى طريقة hex () وحصلنا على قيمة hex_value ، وهي سلسلة سداسية عشرية. نطبع تلك القيمة السداسية العشرية المحولة. نقوم أيضًا بطباعة نوع القيمة السداسية العشرية المحولة ، مما يدل على أنها من النوع السداسي العشري.

استثناء الخطأ (TypeError):

في بعض الأحيان سنحصل على أخطاء أثناء تحويل السلسلة إلى سلسلة سداسية عشرية. السبب وراء ذلك هو أن طريقة hex () تقبل فقط قيمة العدد الصحيح كمعامل.

1
2
3
4
5
6
7
سلسلة_صورة= '0xFF'



hex_output= عرافة(سلسلة_صورة)

مطبعة(hex_output)

انتاج:

1
خطأ مطبعي:'شارع' موضوعلا يمكن تفسيرهكماعدد صحيح

استنتاج:

لذلك ، رأينا طرقًا مختلفة لتحويل السلسلة إلى سلسلة أحرف سداسية عشرية صغيرة. الطريقة السداسية () تحظى بشعبية كبيرة بسبب سهولة استخدامها. لكن في بعض الأحيان ، نريد تحويل السلسلة دون استخدام البادئة 0x ، لذلك في هذه الحالة ، يمكننا استخدام طريقة تشفير البايت () ، كما رأينا بالفعل في المقالة.

يتوفر رمز هذه المقالة على رابط github أدناه:

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