التحويل من ثنائي إلى عشري في C++

Althwyl Mn Thnayy Aly Shry Fy C



سنرى في المقال تحويل القيم الثنائية إلى قيم عشرية في برنامج C++. يتم تمثيل الرقم الثنائي بالرقمين 0 و1، في حين تحتوي القيم العشرية على الأرقام التي تتراوح من 0 إلى 9. ولإنجاز تحويل ثنائي إلى عشري، يجب ضرب القيمة الثنائية في 2 مرفوعًا للأس ' 'ن' يبدأ من اليمين ويتحرك نحو اليسار بحرف 'ن' أعلى. دعونا ننفذ هذا في الكود لتحويل قيمة ثنائية إلى قيمة عشرية.

مثال 1: برنامج التحويل من النظام الثنائي إلى النظام العشري باستخدام حلقة 'While'.

لدينا البرنامج التالي لتحويل الرقم من ثنائي إلى عشري. داخل البرنامج، نستخدم حلقة 'while' للتحويل الثنائي إلى النظام العشري.

#تشمل
#تشمل

استخدام مساحة الاسم الأمراض المنقولة جنسيا ;

كثافة العمليات com.conversionOfBin ( طويل طويل ) ;

كثافة العمليات رئيسي ( ) {
طويل طويل على واحد ;
cout << 'الرقم الثنائي مطلوب:' ;
يتناول الطعام >> على واحد ;
cout << على واحد << 'في ثنائي =' << com.conversionOfBin ( على واحد ) << 'بالنسبة العشرية' ;
يعود 0 ;
}

كثافة العمليات com.conversionOfBin ( طويل طويل على واحد ) {
كثافة العمليات لذا = 0 ، س = 0 ، بقية ;

بينما ( على واحد ! = 0 ) {
بقية = على واحد % 10 ;
على واحد / = 10 ;
ديسمبر + = بقية * الأسرى ( 2 ، س ) ;
++ س ;
}

يعود لذا ;
}

هنا، نحدد ملف الرأس 'iostream' لتدفقات الإدخال والإخراج و'cmath' لاستخدام الوظيفة الرياضية في البرنامج. بعد ذلك، نحدد الدالة ConversionOfBin() حيث يتم تمرير المعلمة من النوع 'long long'. بعد ذلك، لدينا استدعاء الدالة main() لتنفيذ البرنامج. نعلن عن متغير طويل من النوع الداخلي يسمى 'num' داخل الدالة main().







بعد ذلك، تقوم الدالة ConversionOfBin() بتحويل الرقم الثنائي للإدخال إلى الرقم العشري. لهذا، لدينا تعريف الدالة ConversionOfBin() بعد رمز برنامج التشغيل. يتم تمرير الدالة ConversionOfBin() باستخدام المتغير 'num' الذي يحتوي على الرقم الثنائي. ثم نستدعي حلقة 'while' لتحويل الرقم الثنائي في 'num' إلى قيمة عشرية. قبل ذلك، نقوم بتهيئة المتغيرات 'deci' و'x' و'الباقي' بقيمة '0'.



داخل حلقة 'بينما'، يتم إجراء عملية القسمة لتمثيل القيمة الموجودة في أقصى اليمين للرقم الثنائي. يتم تخزين نتائج القسمة في متغير 'الباقي'. ثم نقوم بإضافة نتائج الباقي ونتائج القوة إلى المتغير 'deci'. يستمر المتغير 'x' في تقييم القوة النشطة لـ 2.



يتم تحقيق نتائج تحويل الأرقام الثنائية المحددة إلى قيم عشرية في وحدة تحكم C++:





مثال 2: برنامج التحويل من النظام الثنائي إلى النظام العشري باستخدام حلقة 'For'.

تم التحويل من النظام الثنائي إلى النظام العشري باستخدام حلقة 'while'. ومع ذلك، يمكننا أيضًا استخدام طريقة الحلقة 'for' لتحويل البتات الثنائية إلى رقم عشري.



#تشمل
#تشمل <سلسلة>

كثافة العمليات رئيسي ( ) {
الأمراض المنقولة جنسيا :: خيط سلة مهملات ;
الأمراض المنقولة جنسيا :: cout << 'إدخال الرقم الثنائي:' ;
الأمراض المنقولة جنسيا :: يتناول الطعام >> سلة مهملات ;

كثافة العمليات ديسمبر = 0 ;
كثافة العمليات baseIs = 1 ;

ل ( كثافة العمليات أ = سلة مهملات. طول ( ) - 1 ; أ >= 0 ; أ -- ) {
لو ( سلة مهملات [ أ ] == '1' ) {
ديسمبر + = baseIs ;
}
baseIs * = 2 ;
}

الأمراض المنقولة جنسيا :: cout << 'النتائج بالأرقام العشرية:' << ديسمبر << الأمراض المنقولة جنسيا :: endl ;

يعود 0 ;
}

هنا، نبدأ ببرنامج الدالة main() حيث لدينا المتغير 'std::string' وهو 'bin' لتخزين الرقم الثنائي المُدخل من قبل المستخدم في الموجه. في البداية، ستطلب المطالبة من المستخدم إدخال الرقم الثنائي باستخدام عبارة 'cout'. بعد ذلك، سيقوم الأمر 'cin' بقراءة هذا الرقم الثنائي. بعد ذلك، نقوم بتهيئة المتغير “dec” بقيمة “0” والمتغير “baseIs” بقيمة “1” للحصول على المعادل العشري.

بعد ذلك، نستدعي حلقة 'for' التي تتكرر فوق كل رقم من الثنائي المحدد من اليمين إلى اليسار. داخل الحلقة، لدينا شرط 'if' للتحقق مما إذا كان الرقم الثنائي هو 1. إذا كان 1، تتم إضافة القيمة العشرية إلى المتغير 'dec'. يمتلك المتغير 'baseIs' القدرة على ضرب 2 في 1 في كل تكرار.

تظهر قيمة الرقم الثنائي وتحويله إلى القيمة العشرية على شاشة المطالبة:

مثال 3: برنامج تحويل السلسلة الثنائية إلى النظام العشري

يتم الآن تعريف قيمة السلسلة الثنائية لتحويل قيمتها إلى القيمة العشرية. يتم التنفيذ التالي لتحويل قيمة السلسلة الثنائية إلى قيمة عشرية:

#تشمل
#تشمل <سلسلة>
استخدام مساحة الاسم الأمراض المنقولة جنسيا ;

كثافة العمليات binToDec ( سلسلة فال )
{
قيمة السلسلة = فال ;
كثافة العمليات القيمة العشرية = 0 ;

كثافة العمليات القيمة الأساسية = 1 ;

كثافة العمليات فقط = قيمة. طول ( ) ;
ل ( كثافة العمليات م = فقط - 1 ; م >= 0 ; م -- ) {
لو ( فال [ م ] == '1' )
القيمة العشرية + = القيمة الأساسية ;
القيمة الأساسية = القيمة الأساسية * 2 ;
}

يعود القيمة العشرية ;
}

كثافة العمليات رئيسي ( )
{
سلسلة فال = '11100101' ;
cout << binToDec ( فال ) << endl ;
}

هنا، نبدأ بإنشاء دالة BinToDec() لتحويل الأرقام الثنائية إلى قيم عشرية. تأخذ الدالة BinToDec() الوسيطة 'val' لنوع السلسلة. ضمن الدالة BinToDec()، نقوم بتهيئة متغير 'القيمة' باستخدام المتغير 'val' الذي يمثل أنه سيتم تخزين قيمة المتغير 'val' في متغير 'القيمة'. بعد ذلك، نعلن عن متغير جديد، 'القيمة العشرية'، والذي تم تعيينه بقيمة 0.

وبالمثل، يتم تعيين المتغير 'base_value' وتهيئته بقيمة 1. بعد ذلك، نحدد المتغير 'len' حيث يتم استدعاء الدالة length() للحصول على طول الرقم الثنائي. بعد تهيئة المتغير، لدينا تكرار حلقة 'for'. تقوم حلقة 'for' بتكرار كل رقم ثنائي من اليمين إلى اليسار.

بعد ذلك، لدينا دالة main() حيث يتم تحديد الرقم الثنائي كقيمة سلسلة للمتغير 'val' والذي يتم تحويله إلى القيمة العشرية كما نسمي الدالة BinToDec(val) بالأمر 'cout'.

يتم الآن تحويل القيمة الثنائية من نوع السلسلة إلى القيمة العشرية كما هو موضح في ما يلي:

المثال 4: برنامج التحويل من النظام الثنائي إلى النظام العشري باستخدام فئة Bitset

بالإضافة إلى ذلك، يمكننا تحويل الرقم الثنائي إلى رقم عشري عن طريق تحديد فئة 'bitset' لـ C++ في البرنامج. فهو يوفر الوظائف التي من خلالها يكون إجراء التحويل بسيطًا جدًا.

#تشمل
#تشمل <مجموعة البت>

كثافة العمليات رئيسي ( ) {
الأمراض المنقولة جنسيا :: خيط BinaryIs ;
الأمراض المنقولة جنسيا :: cout << 'الرجاء تقديم الرقم الثنائي:' ;
الأمراض المنقولة جنسيا :: يتناول الطعام >> BinaryIs ;

الأمراض المنقولة جنسيا :: bitset < 64 > الثنائية ( BinaryIs ) ;
غير موقعة طويل عدد عشري = الثنائية. طويل جدا ( ) ;

الأمراض المنقولة جنسيا :: cout << 'عدد عشري: ' << عدد عشري << الأمراض المنقولة جنسيا :: endl ;

يعود 0 ;
}

هنا، قمنا بتعيين مكتبة 'bitset' لـ C++ في الرأس وهو أمر مفيد جدًا عند العمل مع القيم الثنائية. بعد ذلك، لدينا تعريف الدالة main() حيث نستخدم 'std::string' للإعلان عن المتغير 'binaryIs'. يقوم المتغير 'binaryIs' بتخزين قيمة الملف الثنائي في السلسلة. بعد ذلك، نطلب من المستخدم إضافة الرقم الثنائي في الموجه من قبل المستخدم ويتم قراءته من خلال الأمر 'cin'. بعد ذلك، نقوم بضبط حجم البتات التي يمكن أن تكون عددًا صحيحًا يبلغ 64 بت. بعد ذلك، يتم استدعاء الدالة to_ulong() من فئة 'bitset' إلى المتغير 'decimalNumber'. تقوم الدالة to_ulong() بتحويل مجموعة البتات إلى نوع بيانات طويل غير موقّع. وأخيرًا، نستخدم الأمر 'cout' لطباعة القيمة العشرية للقيمة الثنائية التي قدمها المستخدم.

يتم الآن تحويل القيمة الثنائية التي قدمها المستخدم إلى القيمة العشرية:

خاتمة

وفي الختام، تناولنا طرق تحويل القيمة الثنائية إلى قيمة عشرية. لقد استخدمنا حلقة 'for' وحلقة 'while' وفئات مجموعة البتات للتحويل الثنائي إلى النظام العشري. تعمل هذه الأساليب على تحويل الأرقام الثنائية إلى أنظمة عشرية مما يسهل القراءة والفهم.