כיצד להמיר עשרוני לבינארי ב-C

Kyzd Lhmyr Srwny Lbyn Ry B C



מערכות מחשב משתמשות לעתים קרובות במספרים בינאריים כדי לייצג נתונים והוראות, אך מכיוון שפשוט יותר לאנשים להבין ספרות עשרוניות מאשר בינאריות, ולכן נדרשת המרה. מאמר זה יעבור על ההבנה בין עשרונים לבינאריים ויספק דוגמאות לתוכניות לשיטות שונות הממירות עשרוניות לבינאריות בשפת התכנות הנקראת C.

כיצד להמיר עשרוני לבינארי ב-C?

הערך העשרוני הנתון מחולק ב-2 מספר פעמים, כאשר היתרה נרשמת עד שנגיע ל-0 כמנה הסופית. תהליך זה משמש להמרת מספרים שלמים מעשרוני לבינארי. הנוסחה המדגימה את תהליך ההמרה מעשרוני לבינארי נחשבת לשלבים הבאים:







שלב 1: מצא את השארית על ידי חלוקת המספר ב-2, ולאחר מכן הוסף אותו למערך.



שלב 2: לאחר מכן, חלק את השאר בשתיים.



שלב 3: בצע שוב את שני השלבים הראשונים עד שהתוצאה תעלה על 0.





שלב 4: הצג את המערך לאחור כדי לקבל את הצורה הבינארית של המספר. ה-Last-Significant-Bit (LSB) של מספר בינארי נמצא בחלק העליון, ואילו ה-Last-Significant-Bit (MSB) הוא לכיוון התחתון, וזו דרך נוספת לפרש זאת. המקבילה הבינארית של המספר העשרוני שסופק היא זו.

כדי להבין זאת טוב יותר, הנה המרה של  11 10 בהמרה עשרונית לבינארית:



חלוקה לפי 2 מָנָה היתרה
11÷2 5 1 (LSB)
5 ÷ 2 2 1
2-2 1 0
1-2 0 1 (MSB)


כעת, כתוב את היתרה בסדר הפוך, ומכאן, עשרוני (11 10 ) הופך (1011 2 ).

השאר יצוין ואז ייכתב כך שה- (MSB) של המספר הבינארי יבוא קודם, ואז השאר. כתוצאה מכך, 1011 2 הוא המקבילה הבינארית של הערך העשרוני הנתון 11 10 . כתוצאה מכך, 11 10 = 1011 2 . להלן היישום של העשרוני הנ'ל להמרה בינארית בשפת C.

שיטות המשמשות להמרת עשרוני לבינארי

שיטות אלה המשמשות בשפת C ממירות ספרות עשרוניות לבינאריות:

כעת, יישם את ההמרה של עשרונים לבינאריים אחד על ידי הגישות שהוזכרו לעיל.

שיטה 1: עשרוני לבינארי בתכנות C עם for Loop

להלן ההמרה של הספרה העשרונית (11) לבינארי בעזרת for-loop ב-C:

#include
בטל המרה ( int num1 ) {
אם ( מספר1 == 0 ) {
printf ( '0' ) ;
לַחֲזוֹר ;
}
int binary_num [ 32 ] ; // בהנחה 32 מעט שלם.
int אני = 0 ;
ל ( ;מספר1 > 0 ; ) {
binary_num [ i++ ] = מספר1 % 2 ;
מספר 1 / = 2 ;
}
ל ( int j = i- 1 ; י > = 0 ; י-- )
printf ( '%d' , binary_num [ י ] ) ;
}
int main ( ) {
int num1;
printf ( 'הזן מספר עשרוני:' ) ;
scanf ( '%d' , & מספר 1 ) ;
להמיר ( מספר 1 ) ;
לַחֲזוֹר 0 ;
}


התוכנית לעיל משתמשת בלולאת for כדי להמיר את המספר העשרוני שסיפק המשתמש לבינארי. הפלט הוא:

שיטה 2: עשרוני לבינארי בתכנות C עם while Loop

בשיטה זו, לולאת ה-while ב-C משמשת להמרת הספרה העשרונית (11), לבינארי, כפי שמוצג להלן:

#include
int main ( ) {
int decimal_num, binary_num = 0 , בסיס = 1 , היתרה;
printf ( 'הזן מספר עשרוני:' ) ;
scanf ( '%d' , & מספר_עשרוני ) ;
בזמן ( מספר_עשרוני > 0 ) {
השאר = מספר_עשרוני % 2 ;
binary_num = binary_num + השארית * בסיס;
decimal_num = decimal_num / 2 ;
בסיס = בסיס * 10 ;
}
printf ( 'הבינארי של מספר עשרוני נתון עם לולאת while היא: %d' , binary_num ) ;
לַחֲזוֹר 0 ;
}


ארבעת המשתנים השלמים decimal_num, binary_num, base והשאר מוכרזים לראשונה בתוכנית זו. המשתמש מזין מספר_עשרוני, אותו נמיר למספר_בינארי שלו. ההמרה הבינארית מתבצעת באמצעות לולאת while.

שיטה 3: עשרוני לבינארי בתכנות C עם מחסנית

זוהי השיטה הפשוטה עם תוכנית C מבוססת מחסנית שמשנה ערך עשרוני לבינארי:

#include

#define MAX_SIZE 32 // המספר המרבי של סיביות בייצוג בינארי
int main ( ) {
int decimal_num, בינארי [ גודל מקסימלי ] , למעלה = -1 ;
printf ( 'אנא הזן מספר עשרוני כלשהו: ' ) ;
scanf ( '%d' , & מספר_עשרוני ) ;
בזמן ( מספר_עשרוני > 0 ) {
בינארי [ ++למעלה ] = מספר_עשרוני % 2 ;
מספר_עשרוני / = 2 ;
}
printf ( 'הבינארי של %d בשיטת מחסנית הוא:' ) ;
בזמן ( חלק עליון > = 0 ) {
printf ( '%d' , בינארי [ חלק עליון-- ] ) ;
}
לַחֲזוֹר 0 ;
}


תחילה אנו מכריזים על שלושת המשתנים השלמים top, binary ו-decimal_num בתוכנית זו. החלק העליון הוא האינדקס של האלמנט הגבוה ביותר בערימה, עשרוני הוא המספר בצורה עשרונית אותו מזין המשתמש, בינארי הוא מערך שיכיל את הביטים בבינארי כ-MAX_SIZE סיביות ו-decimal_num הוא המערך הבינארי. לאחר מכן, ההמרה הבינארית מתבצעת באמצעות לולאת while.

הפלט הוא:

שיטה 4: עשרוני לבינארי בתכנות C עם אופרטור Bitwise

אופרטור המכונה פעולת סיביות מבצע מניפולציות על כל אחד מהסיביות של סמלים בינאריים המייצגים מספרים שלמים. להלן סקריפט C בסיסי שמשתמש בפעולות סיביות כדי לתרגם מספר בעשרוניות לבינארי:

#include

// שיטה זו תציג את כל 4 חלקים של מספר
המרה בטלה ( int num1 ) {
// קחו בחשבון את א 4 מספר סיביות
ל ( int i = 3 ; אני > = 0 ; אני-- ) {
int bit = ( 1 << אני ) ;
אם ( מספר 1 & קצת )
printf ( '1' ) ;
אַחֵר
printf ( '0' ) ;
}
}
int main ( ) {
int num1;
printf ( 'הזן מספר עשרוני:' ) ;
scanf ( '%d' , & מספר 1 ) ;
הֲמָרָה ( מספר 1 ) ;
לַחֲזוֹר 0 ;
}


תוכנית זו תפעיל לולאת for דרך המספר שמתחיל בסיביות המשמעותיות ביותר ומסתיים בביט בעל המשמעות הנמוכה ביותר. על ידי ביצוע פעולת 'AND' בשיטת סיביות על mask ו-num, אנו עשויים לקבוע אם הביט הוא 0 או 1. אם הוא אינו אפס, הביט הנוכחי הוא 1; אחרת, זה 0.

כדי להציג את הצורה הבינארית של num1, פלט את הביט לאחר כל איטרציה. הפלט הסופי לאחר ביצוע מלא יהיה כדלקמן:

סיכום

זוהי מיומנות חיונית בתכנות מחשב להמיר מספרים מעשרוני לבינארי. הפיכת מספרים עשרוניים לבינאריים מאפשרת לנו לבצע פעולות שונות בתכנות C. מאמר זה סיפק 4 שיטות להמרת ערכים עשרוניים לערכים בינאריים.