logo

ثنائي إلى رقم عشري في C

سيناقش هذا القسم تحويل الأرقام الثنائية إلى أرقام عشرية. قبل أن نذهب إلى المفهوم، نحن بحاجة إلى فهم الأرقام الثنائية والأرقام العشرية. وكما نعلم فإن الكمبيوتر لا يفهم الكلمات أو الأرقام التي يكتبها الإنسان أو يفعلها. وبدلاً من ذلك، فهو يفهم فقط 0 و1. على سبيل المثال، عندما نكتب كلمة أو رقمًا على جهاز الكمبيوتر، تساعد البرامج أو المترجمات المختلفة في تحويل هذه الأرقام أو الكلمات إلى شكل ثنائي (0s و1s bit). حتى يتمكن جهاز الكمبيوتر من فهم هذه الأمور بسهولة.

الكيان العلائقي
ثنائي إلى رقم عشري في C

عدد ثنائي

الرقم الثنائي هو رقم يمثل المعلومات أو البيانات المخزنة في جهاز الكمبيوتر مع مزيج من 0 و1 بت. يُعرف أيضًا باسم النظام الرقمي الأساسي 2 لأنه يحتوي على بتتين، 0 و1. هذه هي الأرقام الثنائية (0 و 1) 1001، 1010، 1101، 1111، 1010101 وما إلى ذلك.

عدد عشري

الرقم العشري هو رقم يحتوي على 10 أرقام من 0 إلى 9. أساسه هو 10 لأنه يجمع 10 أرقام (0، 1، 2، 3، 4، 5، 6، 7، 8، 9) ويمثل أو يصنع الرقم عدد صحيح باستخدام هذه الأرقام العشرة.

خوارزمية لتحويل الثنائي إلى عشري

  1. خذ رقمًا ثنائيًا كمدخل.
  2. اقسم الرقم على 10 وقم بتخزين الباقي في متغير rem.
  3. Decimal_num = decimal_num + rem * base;
    في البداية، يكون الرقم العشري هو 0، والأساس هو 1، حيث يقوم المتغير rem بتخزين باقي الرقم.
  4. اقسم حاصل العدد الأصلي على 10.
  5. اضرب القاعدة بـ 2.
  6. طباعة العلامة العشرية للرقم الثنائي.

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

لنفكر في برنامج C لتحويل مجموعة الأرقام الثنائية (0 و1) إلى رقم عشري باستخدام حلقة while.

برنامج.ج

 #include #include void main() { // declaration of variables int num, binary_num, decimal_num = 0, base = 1, rem; printf (' Enter a binary number with the combination of 0s and 1s 
'); scanf (' %d', &num); // accept the binary number (0s and 1s) binary_num = num; // assign the binary number to the binary_num variable while ( num > 0) { rem = num % 10; /* divide the binary number by 10 and store the remainder in rem variable. */ decimal_num = decimal_num + rem * base; num = num / 10; // divide the number with quotient base = base * 2; } printf ( ' The binary number is %d 	', binary_num); // print the binary number printf (' 
 The decimal number is %d 	', decimal_num); // print the decimal getch(); } 

انتاج |

 Enter a binary number with the combination of 0s and 1s 1101 The binary number is 1101 The decimal number is 13 

توضيحات الكود: كما نرى في البرنامج أعلاه، فإنه يطلب رقمًا ثنائيًا (0 و1) من المستخدمين لتخزين الرقم في المتغير num. في كل تكرار، تتحقق حلقة while من حالة الرقم الثنائي وتتحقق من أن الرقم المحدد يجب ألا يقل عن 0؛ وإلا فإنه يخرج من الحلقة.

فيما يلي تكرار الحلقة while كما يلي:

التكرار الأول:

ريم = 1101% 10 => 1

Decimal_num = 0 + 1 * 1 => 1 (القيمة العشرية = 0، rem = 1، والقاعدة = 1)

الأعداد = 1101 / 10 => 110

القاعدة = 1*2 => 2

جافا آخر إذا

التكرار الثاني:

ريم = 110% 10 => 0

Decimal_num = 1 + 0 * 2 => 1 (القيمة العشرية = 1، rem = 0، والقاعدة = 2)

الأعداد = 110 / 10 => 11

القاعدة = 2 * 2 => 4

التكرار الثالث:

عدد صحيح مزدوج جافا

ريم = 11% 10 => 1

Decimal_num = 1 + 1 * 4 => 5 (القيمة العشرية = 1، rem = 1، والقاعدة = 4)

الأعداد = 11 / 10 => 1

القاعدة = 4 * 2 => 8

شريحة جافا

التكرار الرابع:

ريم = 1% 10 => 1

Decimal_num = 5 + 1 * 8 => 1 (القيمة العشرية = 5، rem = 1، والقاعدة = 8)

الأعداد = 1/10 => 0

القاعدة = 8 * 2 => 16

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

لنفكر في برنامج بلغة C لتحويل مجموعة الأرقام الثنائية (0 و1) إلى رقم عشري باستخدام حلقة for.

عشري.ج

 #include #include #include // use math.h header file void main() { // declaration of local variables i, bin_num, decimal_num = 0, rem; int i, bin_num, decimal_num = 0, rem; printf (' Enter the binary number with the combination of 0s and 1s 
'); scanf ('%d', &bin_num); // takes the binary number as the input printf( ' 
 The binary number is %d', bin_num); // print the binary number for (i = 0; bin_num != 0; ++i) { rem = bin_num % 10; bin_num = bin_num / 10; decimal_num = decimal_num + (rem) * ( pow (2, i)); } // print the decimal number printf ('
 Conversion from binary to decimal number is %d', decimal_num); getch(); } 

انتاج |

 Enter the binary number with the combination of 0s and 1s 10010 The binary number is 10010 Conversion from binary to decimal number is 18 

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

لنفكر في برنامج بلغة C لتحويل مجموعة الأرقام الثنائية (0 و1) إلى رقم عشري باستخدام وظيفة محددة من قبل المستخدم.

ج

 #include #include int binaryTodecimal(int bin_num); int main() { // declare the local variable int bin_num, dec_num; printf (' Enter the binary number (0s and 1s) 
'); scanf ('%d', &bin_num); dec_num = binaryTodecimal (bin_num); // call the binaryTodecimal() function printf (' Conversion of the binary number to decimal number is %d', dec_num); } // use user defined function --- binaryTo decimal function int binaryTodecimal( int bin_num) { // declaration of variables int decimal_num = 0, temp = 0, rem; while (bin_num != 0) { rem = bin_num % 10; bin_num = bin_num / 10; decimal_num = decimal_num + rem * pow( 2, temp); temp++; } return decimal_num; } 

انتاج |

رسم مستطيل الأعرج
 Enter the binary number (0s and 1s) 11001 Conversion of the binary number to decimal number is 25 

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

لنفكر في برنامج بلغة C لتحويل مجموعة الأرقام الثنائية (0 و1) إلى رقم عشري باستخدام الدالة والمصفوفة.

Decimal2.c

 #include #include int binaryTodecimal (char num[]) { int i, deci_num, mul = 0; for ( deci_num = 0, i = str_length(num) - 1; i >= 0; --i, ++mul) { deci_num = deci_num + (num[i] - 48) * (1 << mul); } return deci_num; } int str_length( char str[]) { int i = 0; while (str[i] != '') i++; return i; } int main() { char num[] = '1101'; int deci_num; printf ('
 The binary number is %s', num); printf ('
 The decimal number of %s is %d', num, binaryTodecimal(num)); return 0; } 

انتاج |

 The binary number is 1101 The decimal number of 1101 is 13