בסיס בינארי

במתמטיקה ובמדעי המחשב מערכת ספירה על בָּסִיס בִּינָארִי, או מערכת ספירה על בסיס 2 (על פי הצעת האקדמיה ללשון העברית: בָּסִיס שְׁנִיּוֹנִי), מייצגת ערכים מספריים באמצעות שני סמלים, בדרך כלל 0 ו-1. בפרט, שיטת הספירה הבינארית הנפוצה היא סימון לפי מקום עם בסיס 2. מספרים המיוצגים בשיטה זו נקראים לרוב מספרים בינאריים. בגלל פשטות המימוש של אלקטרוניקה ספרתית בעלת שתי רמות מתח בלבד, נוח להשתמש במערכות דיגיטליות בבסיס בינארי. למעשה כל המערכות הדיגיטליות הנפוצות, מחשבים, טלפונים סלולריים, מערכות משובצות מחשב וכדומה עושים שימוש בבסיס בינארי. המשכיל ההודי פינגלה (אנ') פיתח עקרונות מתמטיים לתיאור משקל בשירה ובזאת למעשה הציג את התיאור הראשון למערכת ספירה בינארית. הוא עשה שימוש בסמלים לייצוג הברות, וחילק בין הברות קצרות וארוכות. שני הסמלים ששימשו אותו לא היו 0 ו-1 אלא קו קצר וקו ארוך השווה באורכו לשני קווים קצרים, בצורה הדומה לקוד מורס. הוא יצר טבלאות על מנת לתת לכל רצף ערך ייחודי. דוגמה לטבלה שכזו: (ההצגה הזו היא בכיוון ההפוך מהשיטה המודרנית) 0 0 0 0 ערך מספרי 110 1 0 0 0 ערך מספרי 210 0 1 0 0 ערך מספרי 310 1 1 0 0 ערך מספרי 410 הבגואה הם שמונה שלשות בשימוש הקוסמולוגיה של הטאואיזם לייצוג העקרונות היסודיים של המציאות. שלשה מורכבת משלושה קווים, כאשר כל קו הוא "שבור" או "לא שבור", לייצוג יין ויאנג בהתאמה. המבנה הזה אנלוגי למספרים בינאריים תלת ספרתיים. המבנה היה בשימוש לכל הפחות מתקופת שושלת ג'ואו, שכן הוא מופיע בספר אי צ'ינג. הספר מחולק לשישים וארבעה פרקים המיוצגים על ידי סדרה של שישיות של קווים, מה שמקביל למספרים בינאריים בעלי שש ספרות. שיטת הספירה הבינארית המודרנית פותחה על ידי גוטפריד וילהלם לייבניץ בשנת 1679. השיטה של לייבניץ עושה שימוש ב-0 ו-1, כמו בשיטה המודרנית. כחובב התרבות הסינית, לייבניץ הכיר את האי צ'ינג וציין בהתפעלות את ההתאמה בין השישיות והמספרים הבינאריים בעלי שש ספרות. בשנת 1854 פרסם המתמטיקאי הבריטי ג'ורג' בול את ספרו העיקרי בתורת ההיגיון, "חקירה של חוקי החשיבה" ובו הציג את האלגברה הבוליאנית. האלגברה הבוליאנית מהווה בסיס ללוגיקה בוליאנית- ענף העוסק בפסוקים אלגבריים שערכי איבריהם אמת או שקר בלבד. הערכים מיוצגים על ידי הסימונים '1'\ ו- '0'\ בהתאמה. לענף זה שימוש רב בתחשיב פסוקים, באלקטרוניקה ובמדעי המחשב. בשיטה זו, ערכה של כל ספרה "1" הוא 2 n {\displaystyle 2^{n}} כאשר n הוא מיקום הספרה מימין, החל מ-0. לדוגמה, הייצוג של המספרים הטבעיים הקטנים מ-8 יהיה: בסיס בינארי משמש כיום בעיקר בתחום מדעי המחשב, זאת כיוון שבמעגלים לוגיים אלקטרוניים נוח להסתפק בהבחנה בין שתי רמות מתח בלבד, גבוה ונמוך, המיוצגות על ידי "1" ו-"0" בהתאמה. ולכן זהו הבסיס הטבעי להביע בו מספרים במחשב המורכב ממעגלים כאלו. מאפיינים נוספים ייחודיים לשיטה זו הם הדמיון שלה לבסיס הסטנדרטי באלגברה ליניארית, וכן היותה הבסיס הנמוך ביותר בשימוש נפוץ בייצוג מספרים. קיימות שיטות ייצוג אחרות, המבוססות על הבסיס הבינארי, כמו קוד גריי או שיטת משלים ל-2 המאפשרת ייצוג מספרים שליליים, או ייצוג נקודה צפה של מספרים רציונליים. בסיס הספירה העשרונית הוא 10, משום שלספירה זו 10 סימנים. פירוק מספר עשרוני: 1452 = 1 ⋅ 1000 + 4 ⋅ 100 + 5 ⋅ 10 + 2 = 1 ⋅ 10 3 + 4 ⋅ 10 2 + 5 ⋅ 10 1 + 2 ⋅ 10 0 {\displaystyle \!\,1452=1\cdot 1000+4\cdot 100+5\cdot 10+2=1\cdot 10^{3}+4\cdot 10^{2}+5\cdot 10^{1}+2\cdot 10^{0}} אנו רואים כי הבסיס המשותף לכל האיברים הוא 10. בסיס הספירה הבינארית הוא 2 (לספירה זו שני סימנים), לכן נפרק את המספר הבינארי הבא בהתאם לפירוק המספר העשרוני: 1101 = 1 ⋅ 2 3 + 1 ⋅ 2 2 + 0 ⋅ 2 1 + 1 ⋅ 2 0 = 8 + 4 + 0 + 1 = 13 {\displaystyle 1101=1\cdot 2^{3}+1\cdot 2^{2}+0\cdot 2^{1}+1\cdot 2^{0}=8+4+0+1=13} מכאן שהמספר 1101 בספירה בינארית שקול למספר 13 בספירה עשרונית. לכן נציג נוסחה כללית, למעבר מספרה המוצגת בבסיס בינארי לבסיס עשרוני (באגף השמאלי מופיע המספר בספרות בינאריות, ומימין משמעותו בספרות עשרוניות): a 1 a 2 a 3 . . . a n = a 1 ⋅ 2 n − 1 + a 2 ⋅ 2 n − 2 + a 3 ⋅ 2 n − 3 + . . . + a n ⋅ 2 0 {\displaystyle a_{1}a_{2}a_{3}...a_{n}=a_{1}\cdot 2^{n-1}+a_{2}\cdot 2^{n-2}+a_{3}\cdot 2^{n-3}+...+a_{n}\cdot 2^{0}} או, באמצעות נוסחת נסיגה, a ( n ) = 2 X − 1 + Y {\displaystyle a(n)=2^{X-1}+Y} כאשר X מייצג את מס' הספרות של המס' הבינארי, Y מייצג את הערך העשרוני של המספר הבינארי ללא הספרה השמאלית ביותר, וידוע כי a(0) = 0 וכן a(1) = 1. לדוגמה, a ( 01 ) = 1 {\displaystyle a(01)=1} ומכאן a ( 101 ) = 2 2 + a ( 01 ) = 4 + 1 = 5 {\displaystyle a(101)=2^{2}+a(01)=4+1=5} ולכן, a ( 1101 ) = 2 3 + a ( 101 ) = 8 + 5 = 13 {\displaystyle a(1101)=2^{3}+a(101)=8+5=13} מעבר ממספר עשרוני למספר בינארי יתבצע באמצעות המרה של המספר העשרוני למספרים בחזקה בעלת בסיס 2 וסידורם בסדר כרונולוגי. דוגמה: ניקח את המספר 73. תחילה נמצא את החזקה בבסיס 2 הקרובה ביותר למספר (אך קטנה ממנו). החזקה הקטנה ביותר המתאימה היא: 2 6 = 64 {\displaystyle 2^{6}=64} . כדי להגיע למספר 73 נצטרך להוסיף עוד חזקות בעלות בסיס 2. נבדוק אם 2 5 {\displaystyle 2^{5}} יתאים לנו: 2 6 + 2 5 = 64 + 32 = 96 > 73 {\displaystyle 2^{6}+2^{5}=64+32=96>73} קיבלנו מספר גדול מהמספר 73. לכן יש לחפש חזקה קטנה יותר. נבדוק אם 2 4 {\displaystyle 2^{4}} יתאים לנו: 2 6 + 2 4 = 64 + 16 = 80 > 73 {\displaystyle 2^{6}+2^{4}=64+16=80>73} קיבלנו מספר גדול מהמספר 73. לכן יש לחפש חזקה קטנה יותר. נבדוק אם 2 3 {\displaystyle 2^{3}} יתאים לנו: 2 6 + 2 3 = 64 + 8 = 72 < 73 {\displaystyle 2^{6}+2^{3}=64+8=72<73} המספר 72 קטן מהמספר 73, לכן החזקה 2 3 {\displaystyle 2^{3}} מתאימה לנו. כדי להגיע מ-72 ל-73 נצטרך להוסיף עוד מספר. ברור כי 2 2 {\displaystyle 2^{2}} , ו- 2 1 {\displaystyle 2^{1}} לא יתאימו לנו, אבל 2 0 = 1 {\displaystyle 2^{0}=1} יתאים לנו. אם כן פירוק המספר 73 לחזקות בעלות בסיס 2 הוא: 73 = 2 6 + 2 3 + 2 0 {\displaystyle 73=2^{6}+2^{3}+2^{0}} כדי להגיע למספר הבינארי המתאים, נוסיף את החזקות החסרות בין החזקות הללו: 73 = 1 ⋅ 2 6 + 0 ⋅ 2 5 + 0 ⋅ 2 4 + 1 ⋅ 2 3 + 0 ⋅ 2 2 + 0 ⋅ 2 1 + 1 ⋅ 2 0 {\displaystyle 73=1\cdot 2^{6}+0\cdot 2^{5}+0\cdot 2^{4}+1\cdot 2^{3}+0\cdot 2^{2}+0\cdot 2^{1}+1\cdot 2^{0}} כלומר, חזקות שהשתמשנו בהן, הוכפלו ב-1 וחזקות שלא השתמשנו בהם, הוכפלו ב-0. המספר הבינארי שלנו מורכב מהמקדמים של מספרי החזקות. מכאן ש-73 בספירה בינארית הוא: 1001001 {\displaystyle 1001001} דרך קלה יותר לבצע את ההמרה הזו מתבצעת על ידי חלוקה חוזרת של המספר העשרוני ב-2 ובדיקת השארית: מתחילים במספר המקורי, k {\displaystyle k} כל עוד k שונה מ-0, כותבים את השארית של החלוקה (k mod 2). לוקחים את החלק השלם של תוצאת החלוקה ב-2 (k div 2, בשפת C, למשל) ומסמנים אותו ב-k. בסוף התהליך, השאריות הן הייצוג של המספרי הבינארי בסדר ההפוך. ואם נקרא את השאריות מלמטה למעלה, נקבל את ייצוג המספר בבסיס בינארי: 1001001 (אילו היינו ממשיכים את החלוקה ב-2, היינו מקבלים את המספר 000001001001…, השווה למספר המצומצם 1001001.) שיטה זו שקולה לשיטה הקודמת, אבל קלה יותר ליישום אלגוריתמי. סיבית (קיצור של סיפרה בינארית; באנגלית: bit או ביט, קיצור של "binary digit") היא ספרה בינארית המשמשת כיחידת הנתונים הקטנה ביותר שבה משתמש המחשב. סיבית יכולה להכיל ערך 0 או 1 בלבד. הסיבה לשימוש בשיטה הבינארית היא פשטות המימוש האלקטרוני והלוגי של שיטה זו - נדרש טיפול בשני מצבים בלבד (למשל: יש זרם = 1, אין זרם = 0). ניתן ליצג מידע באמצעות דפוסים של סיביות על ידי תהליך של דיגיטציה. בסיס אוקטלי בסיס הקסדצימלי משלים ל-1 משלים ל-2 תוכנה - מונחים מדיה וקבצים בנושא בסיס בינארי בוויקישיתוף בסיס בינארי, באתר MathWorld (באנגלית) בסיס בינארי, באתר אנציקלופדיה בריטניקה (באנגלית) המחשה אינטראקטיבית של ספירה בבסיס בינארי והקסדצימלי מתוך אתר לילדים המלמד מושגים במדעי המחשב Denning, P. J., & Bell, T. (2012). The Information Paradox. American Scientist, 100(6), 470-477.