השפה הבינארית
כמו שאולי שמעתם בעבר, מחשבים מדברים בשפה שנקראת בינארית - רצפים של 0 ו-1. אבל מה זה אומר בפועל? נכנס לפרטים.
המספרים הרגילים שאנחנו עובדים איתם נמצאים בבסיס 10, הידוע גם בתור בסיס דצימלי או בסיס עשרוני. הספרות במספרים כמו 13 ו-5 יכולות לקבל 10 אופציות, מתוך הקבוצה 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. בשפה בינארית אנחנו עובדים בבסיס 2, כאשר כל ספרה יכולה לקבל אחד משני ערכים - 0 או 1. לדוגמא - 13 בבינארית הוא 1101, ו-5 בבינארית הוא 101. איך מבצעים המרה כזו?
כתיבת מספר בבינארית ודצימלית
נבחן למשל את המספר 549. מה המשמעות של כתיבה כזו בבסיס 10?
$$ 549 = 9 \cdot 10^0 + 4 \cdot 10^1 + 5 \cdot 10^2 = 9 + 40 + 500 $$
במספר 549, 9 היא ספרת האחדות ולכן היא תורמת למספר הכולל \(9 \cdot 1\). בצורה דומה, 4 היא ספרת העשרות ולכן היא תורמת למספר הכולל \(4 \cdot 10\), ו-5 היא ספרת המאות ולכן היא תורמת למספר הכולל \(5 \cdot 100 \). כל ספרה תורמת את ערכה, כפול הבסיס הדצימלי (10) בחזקת מיקום הספרה, כאשר מתחילים לספור מ-0.
מספרים בבינארית מתנהגים בדיוק אותו דבר, רק שהבסיס הוא 2:
$$ 1101 = 1 \cdot 2^0 + 0 \cdot 2^1 + 1 \cdot 2^2 + 1 \cdot 2^3=1 + 4 + 8 =13 $$
בפשטות, אם קוראים את המספר מימין לשמאל, כל ספרה כופלת חזקות עולות מ-0 של 2 - בדיוק כמו בבסיס 10. בבינארית זה אפילו קל יותר, מכיוון שחזקה נכפלת ב-0 או 1 בלבד.
דוגמא
נמיר את המספר \(11110010\) מבינארי לעשרוני. על מנת לעשות זאת, נקרא את המספר מימין לשמאל ונכפול כל ספרה בחזקות עולות של 2:
$$ 11010 = 0 \cdot 2^0 + 1 \cdot 2^1 + 0 \cdot 2^2 + 1 \cdot 2^3 + 1 \cdot 2^4 $$ $$ = 0 \cdot 1 + 1 \cdot 2 + 0 \cdot 4 + 1 \cdot 8 + 1 \cdot 8 $$ $$ = 2 + 4 + 8 $$ $$ = 14 $$
בשביל להמיר מבסיס עשרוני לבינארי, נחלק את המספר ב-2 עד שנגיע ל-0, ואז נכתוב את השאריות מלמטה למעלה. למשל, נמיר את המספר 549 מעשרוני לבינארי - נסמן את השארית ב-\(r\):
$$ \frac{549}{2} = 274, r=1 $$ $$ \frac{274}{2} = 137, r=0 $$ $$ \frac{137}{2} = 68, r=1 $$ $$ \frac{68}{2} = 34, r=0 $$ $$ \frac{34}{2} = 17, r=0 $$ $$ \frac{17}{2} = 8, r=1 $$ $$ \frac{8}{2} = 4, r=0 $$ $$ \frac{4}{2} = 2, r=0 $$ $$ \frac{2}{2} = 1, r=0 $$ $$ \frac{1}{2} = 0, r=1 $$
כלומר, המספר 1000100101 בבינארית היא 549 בדצימלית.
שאלות ותרגילים
- המירו את המספרים הבאים לבינארי לעשרונים:
- 101
- 1101
- 10010
- 111111
- 001111
- המירו את המספרים הבאים מעשרוני לבינארי:
- 7
- 333
- 32
- 100
- נתון מספר \(x = 2^k\) עבור \(k\) שלם. כתבו את \(x\) בבינארית, כאשר ניתן לסמן \(k\) ספרות חוזרות בבינארית בכל סימן לבחירתכם.
- נתון המספר הבינארי \(abcd\), כאשר כל ספרה \(a, b, c, d\) מייצגת ספרה בינארית אחת. מהו מספר הערכים השונים שהמספר יכול לקבל? כמה ערכים שונים יכול לקבל מספר בינארי בעל \(k\) ספרות יכול לקבל עבור \(k\) שלם?