logo

كيفية تحويل الست عشري إلى ثنائي في بيثون؟

ال 'عرافة' هو اختصار ل السداسي عشري . إنه نظام ترقيم يستخدم 16 كقاعدة لها. ويشيع استخدامه في الحوسبة والإلكترونيات الرقمية لأنه يمكن أن يمثل بايت (8 بت) من البيانات المكونة من رقمين فقط، مما يجعلها أكثر إيجازًا وأسهل في القراءة من البيانات الثنائية. في النظام الست عشري، الأرقام 0-9 تمثل القيم الخاصة بكل منها، في حين أن الحروف أ-ف (أو أ-و) تمثل القيم 10-15 ، على التوالى.

تقليم جافا سكريبت

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

يمكن إجراء التحويل من النظام السداسي العشري إلى الثنائي في لغة بايثون باستخدام وظيفة مدمجة تسمى سلة مهملات() . تأخذ هذه الدالة عددًا صحيحًا أو سلسلة كمدخلات وترجع مكافئه الثنائي.

مثال:

 # Define a hexadecimal string hex_string = '1A' # Convert the hexadecimal string to an integer using the base 16 hex_integer = int(hex_string, 16) # Convert the integer to binary using the bin() function binary_string = bin(hex_integer) # Remove the '0b' prefix from the binary string binary_string = binary_string[2:] # Print the binary string print(binary_string) 

انتاج:

 11010 

الطريقة الثانية: استخدام عوامل تشغيل Bitwise

توفر بايثون المدمج في مشغلي bitwise والتي يمكن استخدامها لمعالجة البيانات الثنائية. يمكنك استخدام عوامل التشغيل هذه لتحويل سلسلة سداسية عشرية إلى سلسلة ثنائية عن طريق تحويل السلسلة أولاً إلى عدد صحيح، ثم استخدام عمليات البت لاستخراج الأرقام الثنائية.

مثال:

فيما يلي مثال لمقتطف الشفرة:

 # Define a hexadecimal string hex_string = '1F' # Convert the hexadecimal string to an integer using the base 16 hex_integer = int(hex_string, 16) # Convert the integer to binary using bitwise operators binary_string = format(hex_integer, 'b') # Print the binary string print(binary_string) 

انتاج:

 11111 

توضيح:

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

الطريقة الثالثة: استخدام الدالة hex2bin() من وحدة binascii

بايثون com.binascii توفر الوحدة أ hex2bin() دالة يمكن استخدامها لتحويل سلسلة سداسية عشرية إلى ثنائية.

تطبيقات مخفية

مثال:

فيما يلي مثال لمقتطف الشفرة:

 # Import the binascii module import binascii # Define a hexadecimal string hex_string = '1A' # Convert the hexadecimal string to binary using the binascii.unhexlify() function binary_string = bin(int.from_bytes(binascii.unhexlify(hex_string), byteorder='big')) # Print the binary string print(binary_string) 

انتاج:

 0b11010 

توضيح:

في هذا الكود، نقوم أولاً باستيراد ملف com.binascii وحدة. بعد ذلك، نحدد السلسلة السداسية العشرية التي نريد تحويلها. نقوم بتمرير السلسلة السداسية العشرية إلى binascii.unhexlify() وظيفة لتحويله إلى كائن بايت. بعد ذلك، نقوم بتحويل كائن البايت إلى عدد صحيح باستخدام التابع int.from_bytes() وظيفة، مع ترتيب البايت لتعيين 'كبير' (البايت الأكثر أهمية أولاً). وأخيرا، نقوم بتمرير العدد الصحيح إلى سلة مهملات() وظيفة للحصول على تمثيل السلسلة الثنائية.

ملاحظة: تقوم الدالة bin() بإرجاع السلسلة الثنائية ذات البادئة '0b'. إذا كنت تريد إزالة البادئة، يمكنك استخدام تقطيع السلسلة.

الطريقة الرابعة: استخدام فهم القائمة وتنسيق السلسلة

يمكننا تحويل سلسلة سداسية عشرية إلى ثنائية باستخدام قائمة الفهم الذي يتكرر على كل رقم سداسي عشري في السلسلة ويحوله إلى مكافئه الثنائي باستخدام تنسيق السلسلة.

مثال:

 # Define a hexadecimal string hex_string = '1A' # Convert the hexadecimal string to binary using a list comprehension and string formatting binary_string = ''.join(['{0:04b}'.format(int(d, 16)) for d in hex_string]) # Print the binary string print(binary_string) 

انتاج:

 00011010 

توضيح:

في هذا الكود، نحدد أولاً السلسلة السداسية العشرية التي نريد تحويلها. بعد ذلك نستخدم أ قائمة الفهم للتكرار على كل رقم سداسي عشري في السلسلة. لكل رقم، نقوم بتحويله إلى عدد صحيح باستخدام الدالة كثافة العمليات () الوظيفة مع ضبط القاعدة على 16 ، ثم قم بتنسيقها كسلسلة ثنائية باستخدام 4 أرقام باستخدام '{0:04ب}'.تنسيق () بناء جملة تنسيق السلسلة. يتم جمع السلاسل الثنائية الناتجة في قائمة، والتي يتم بعد ذلك ضمها معًا في سلسلة واحدة باستخدام ''.ينضم() وظيفة.

الطريقة الخامسة: استخدام مكتبة NumPy

إذا كان لديك مكتبة NumPy المثبتة، يمكنك استخدام numpy.base_repr() دالة لتحويل سلسلة سداسية عشرية إلى ثنائية.

مثال:

 # Import the numpy library import numpy as np # Define a hexadecimal string hex_string = '1A' # Convert the hexadecimal string to binary using the numpy.base_repr() function binary_string = np.base_repr(int(hex_string, 16), base=2) # Print the binary string print(binary_string) 

انتاج:

القيادة العليا ليونكس
 11010 

ملاحظة: تقوم الدالة numpy.base_repr() بإرجاع السلسلة الثنائية بدون أي بادئة أو أصفار بادئة، على عكس الدالة bin() المضمنة.