בסיסי ספירה

בואו נדבר על 12. מה זה 12? סביר להגיד שזה המספר שאחד מהשמות שלו הוא “תריסר” וזה גם נכון, אבל 12 יכול לומר עוד דברים, למשל שמונה-עשרה. או חמש. בפוסט הזה אני רוצה להסביר את ההגיון מאחורי זה, בצורה שאני מקווה שתהיה נגישה לכל קורא אפשרי.

נתחיל מההתחלה. מה זה “תריסר”? זה השם שאנחנו נותנים למספר שמתאים למספרים של חודשי השנה. או למספר קוביות השוקולד בחבילה שמורכבת מארבע שורות שבכל אחת מהן שלוש קוביות שוקולד, וכדומה. אני מניח שכולנו יכולים להסכים על השם “תריסר” עבורו, אבל בדרך כלל אנחנו לא כותבים את המספר הזה בתור “תריסר” אלא בתור 12. כשאני רואה את המספר הזה אני חושב אוטומטית “שתיים-עשרה” בראש, אבל בואו נבטל לרגע את מנגנון התרגום האוטומטי הזה. מה זה 12? אם נקרא משמאל לימין את הביטוי הזה, הוא פשוט “אחד-שתיים”. איך יצור כזה מתאר את המספר “תריסר”? פשוט מאוד: הוא מתאר לנו מין שיטה חשבונית פשוטה לבנות את המספר הזה: 12 אומר לנו, בעצם, “עשר ועוד שתיים”.

chocolate

איך “אחד-שתיים” הפך להיות “עשר ועוד שתיים”? מה שאנחנו אומרים הוא ש-12 הוא ייצוג של מספר שמורכב מספרות. כל ספרה היא צורה כלשהי מבין הצורות הבאות: 0,1,2,3,4,5,6,7,8,9. הצורות מתאימות למספרים מאפס עד תשע, שכולנו מכירים. כעת, כאשר קוראים מספר מימין לשמאל, הספרה הימנית ביותר נקראת “ספרת האחדות” של המספר, וזו שמשמאלה נקראת “ספרת העשרות” שלו. התרגיל החשבוני שאנחנו מבצעים כשאנחנו קוראים מספר בן שתי ספרות הוא זה:

  1. כפלו את ספרת האחדות ב-1.
  2. כפלו את ספרת העשרות ב-10.
  3. חברו את שתי התוצאות.

במקרה שלנו, ספרת האחדות היא 2 ולכן תוצאת שלב 1 היא \( 2\cdot1=2 \). ספרת העשרות היא \( 1 \) ולכן תוצאת שלב 2 היא \( 1\cdot10=10 \). שלב 3 אומר לנו לבצע את החיבור \( 10+2 \). לשיטה הזו יש הד ברור בשמות של המספרים שאנחנו משתמשים בהם: השם המקובל של “תריסר” הוא כאמור “שתיים-עשרה” שכולל בדיוק את שני הרכיבים הללו - שתיים (2) ו”עשרה” (10).

הנה מספר אחר, 404. מה קורה פה? פה נתווספה ספרה שלישית, ספרת המאות. הכלל הנוגע אליה פשוטה: כופלים אותה ב-100 ומוסיפים לחיבור. לכן 404 מתפרש בתור “ארבע כפול אחד ועוד אפס כפול עשר ועוד ארבע כפול מאה” וזוכה לשם “ארבע מאות וארבע”.

ומה קורה באופן כללי?

מילת המפתח פה היא חזקות של עשר. חזקה של עשר היא מה שמקבלים כשלוקחים את 1 ומתחילים לכפול אותו ב-10. אחרי שכפלנו פעם אחת נקבל 10; אחרי פעמיים נקבל 100, אחרי שלוש פעמים 1,000 וכן הלאה. אחרי שנכפול את 1 ב-10 אפס פעמים, אנחנו בעצם נשארים עם ה-1 שלנו כי לא עשינו לו כלום, ולכן מגדירים את עשר בחזקת אפס להיות 1. בסימון מקוצר: \( 10^{0}=1 \) ו-\( 10^{1}=10 \) ו-\( 10^{2}=100 \) וכן הלאה.

עכשיו אני יכול לכתוב את “התרגיל החשבוני” שמגדיר מספר בצורה עוד יותר מפורשת: כשאני כותב 531, אני מתכוון לסכום \( 1\cdot10^{0}+3\cdot10^{1}+5\cdot10^{2} \). כשאני כותב \( 1089 \) אני מתכוון לסכום \( 9\cdot10^{0}+8\cdot10^{1}+0\cdot10^{2}+1\cdot10^{3} \) וכן הלאה. למספרים שמוכפלים בחזקות של 10 קוראים מקדמים (כי הם באים בתור “הקדמה” לחזקות עצמן). שיטת הייצוג הזו - שבה כל מספר נכתב בתור סכום של מקדם-כפול-חזקה-של-עשר נקראת ייצוג עשרוני של מספר (או בלועזית, ייצוג דצימלי). זו שיטת הייצוג הפופולרית ביותר כיום בעולם כולו. היא נפלאה. היא נהדרת. היא לא טריוויאלית והיא גם לא היחידה האפשרית.

כדי להבין את מה שמייחד את השיטה העשרונית בואו נסתכל על שיטת ייצוג אחרת למספרים - השיטה הרומית. בשיטה הרומית יש סימנים מיוחדים עבור המספרים “אחד” (I), “חמש” (V), “עשר” (X), “חמישים” (L), “מאה” (C), “חמש מאות” (D) ו”אלף” (M). כל מספר מגדיר “תרגיל חשבוני” שבו פשוט סוכמים את הערך של הסימנים שמופיעים בו. למשל XXXXII מתאר את ארבעים ושתיים - ארבע פעמים עשר ועוד פעמיים אחד. בגרסה המודרנית יותר שלה, השיטה הרומית גם מאפשרת סוג מסויים של חיסור כדי לפשוט את הכתיב (למשל אפשר לכתוב IV שנקרא כ”חמש פחות אחד” במקום IIII) אבל לא ניכנס לזה כרגע כי זה לא חשוב.

מה ההבדל המהותי בין השיטה הרומית והשיטה העשרונית? בשיטה הרומית, בכל פעם שבה נכתב X, הכוונה היא תמיד למספר עשר. לא משנה איפה במספר הוא נכתב (לפעמים, כאמור, המשמעות שלו תהיה “נא לחסר עשר” אבל זה עדיין עשר). בשיטה העשרונית, לעומת זאת, המיקום של ספרה במספר הוא בעל משמעות רבה. במספר 321, הספרה השמאלית ביותר, “3”, אינה מציינת את המספר “שלוש” אלא את המספר “שלוש מאות”. במספר 123 הספרה “3” מציינת את “שלוש”. המיקום משפיע. בזכות השיטה הזו קל לנו יחסית לייצג מספרים גדולים שבשיטה הרומית היה יותר קושי לייצג; אפשר גם לבצע תרגילי חשבון בנוחיות רבה יותר מאשר בשיטה הרומית (אבל השוואה מדוקדקת בין שתי השיטות ראויה לפוסט נפרד). בהיסטוריה שמור לספרות הרומיות תפקיד של כבוד, אבל הן נדחקו בימינו לשוליים, למרות שעדיין משתמשים בהן פה ושם, בעיקר מטעמים אסתטיים.

אבל יש גם שיטות כתיבת מספרים אחרות, דומות מאוד באופיין לשיטה העשרונית, אבל עם הבדל אחד בסיסי - הן לא מתבססות על המספר עשר. בשיטה העשרונית סוכמים חזקות של עשר. אבל למה דווקא עשר? האם יש משהו מיוחד בעשר? האם אפשר לעשות את זה גם עם מספרים אחרים, נאמר שלוש או שמונה? התשובה חיובית. אני יכול למשל לכתוב מספר באמצעות ספרות בין 0 ל-7, ואז לכפול את הספרות הללו בחזקות של 8. קוראים לזה “לייצג את המספר בבסיס 8” (או, אם רוצים שם מפוצץ, בבסיס אוקטלי). למשל, 12 בבסיס 8 מייצג את המספר “שתיים כפול אחד ועוד אחד כפול שמונה”, כלומר עשר. כדי לא לבלבל לא אכתוב 12 אלא אכתוב \( \left(12\right)_{8} \) וככה יהיה ברור על איזה בסיס מדובר; אז ראינו ש-\( \left(12\right)_{8}=10 \). באופן דומה, \( \left(123\right)_{8}=3\cdot8^{0}+2\cdot8^{1}+1\cdot8^{2}=3\cdot1+2\cdot8+1\cdot64=3+16+64=83 \).

הנה לכם שאלה: בבסיס שמונה מהו המספר \( \left(80\right)_{8} \)? התשובה היא שאין כזה מספר. אנחנו לא משתמשים בספרה 8 בבסיס שמונה. הספרות הן מ-0 עד 7. הסיבה לכך היא שאין צורך בספרה 8. אם נבדוק מהו הביטוי החשבוני של \( \left(80\right)_{8} \) נקבל \( 8\cdot8^{1}=64 \); אבל כבר יש לי כתיב אחר למספר הזה, \( \left(100\right)_{8} \). אין לנו צורך בשתי שיטות כתיבה לאותו המספר ולכן אנחנו פשוט לא משתמשים בספרה ה”מיותרת” 8. באופן דומה, בבסיס עשר אין לנו ספרה אשר מתארת את המספר עשר. ובאופן כללי, אם יש לנו בסיס ספירה שמבוסס על המספר \( n \), אז נזדקק לספרות עבור כל המספרים מ-0 עד \( n-1 \).

בואו נסתכל על שני מקרים קיצוניים יחסית. המקרה הראשון הוא בסיס 2 - בסיס בינארי. בבסיס הזה הספרות הן רק 0 ו-1 והמספרים הם סכומים של חזקות של 2. למשל \( \left(1101\right)_{2}=1+2^{2}+2^{3}=1+4+8=13 \). בסיס בינארי מאוד פופולרי בימינו בחוגים הנכונים מהטעם הפשוט שזה האופן שבו מחשבים שומרים ומעבדים מידע על פי רוב - ביחידות מידע בסיסות שיכולות להכיל רק את הערכים 0 ו-1 (כי זה הדבר הנוח לעשות, ברמה הטכנית שבה מחשב פועל). הבעיה בו היא שמספרים עשויים להיות ארוכים מאוד, ולכן משתמשים בבסיס ספירה נוסף, שקשור בקשר הדוק לבסיס הבינארי - בסיס 16, “בסיס הקסדצימלי”.

בסיס 16 מעמיד בפנינו בעיה שטרם ראינו: חסרות לנו ספרות. בתרבות שלנו מקובלות הספרות 0,1,2,3,4,5,6,7,8,9 ואין סימנים שמיועדים לתיאור מספרים גדולים יותר. מה הפתרון שמצאו אנשים שנזקקו בפועל לשימוש בבסיס 16? התחילו להשתמש באותיות האלפבית הלטיני כדי לתאר את המספרים הבאים בתור: A הוא 10, B הוא 11 וכן הלאה עד F שהוא 15. את המספר 31 אפשר לתאר, למשל, בתור 1F. לפעמים כשהמחשב מקפיץ לנו הודעות שגיאה קריפטיות מופיעים שם מספרים מהצורה המפחידה \( \text{0xFFD9B3} \) וכדומה - זה פשוט ייצוג של מספר (שמתאר על פי רוב כתובת בזכרון המחשב שבה ארעה התקלה) בבסיס הקסדצימלי. התפקיד של ה-F וכדומה שמופיעים שם הוא להיות ספרות שגדולות מ-9. ה-\( 0x \) בהתחלה הוא דרך מוסכמת לומר “עכשיו בא מספר בייצוג הקסדצימלי”, כי לא נוח לכתוב \( \left(\text{FFD9B3}\right)_{16} \). היתרון של בסיס הקסדצימלי על בינארי הוא שמספרים נכתבים בצורה קומפקטית בהרבה; וקל לעבור מבסיס בינארי להקסדצימלי - כל ארבע ספרות בינאריות מתארות מספר בין 0 ל-15, כלומר ספרה הקסדצימלית אחת בדיוק.

geekspeak-1

אם בסיס 16 הוא כל כך שימושי במחשבים, למה אנחנו בעצם עובדים בבסיס 10? גם לבסיס 12 יש כל מני תומכים שמפרטים שלל יתרונות שלו על בסיס 10. אז למה? התשובה פשוטה: ככה. ככה יצא. כנראה שעשר האצבעות שלנו הן מה שהטו את הכף דווקא לקראת בחירה ב-10. בתרבויות שונות בעולם העתיק היו מקובלים גם בסיסי ספירה אחרים. המאיה השתמשו בספירה על בסיס 20 ואילו הבבלים השתמשו בספירה על בסיס 60. בשני המקרים זה נשמע קצת הזוי - איך היו להם כל כך הרבה ספרות? - אבל הפתרון שלהם היה לתאר כל ספרה באמצעות משהו שקצת מזכיר את השיטה הרומית, כך שהשיטה הכוללת לא יוצאת מסובכת במיוחד.

לסיום, הנה קוריוז חביב. כשאנחנו כותבים “10” אנחנו מתכוונים מן הסתם למספר עשר, אבל מה קורה אם מישהו שחושב ועובד בבסיס 12 יכתוב “10”? ובכן, הוא יתכוון לאחד-כפול-תריסר-בחזקת-אחד, כלומר לתריסר. ואם מישהו עובד בבסיס 4? אז כשהוא יכתוב 10 הוא יתכוון לומר “ארבע” וכן הלאה. זה הבסיס לבדיחת הרשת הבאה:

18527917_10155295755119643_4590954668929572128_n

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


נהניתם? התעניינתם? אם תרצו, אתם מוזמנים לתת טיפ:

Buy Me a Coffee at ko-fi.com