מחשבון בינארי
בצע חיבור, חיסור, כפל וחילוק בינארי. המר בין בינארי ועשרוני. מחשבון מתמטיקה חינמי. קבל תוצאות מיידיות.
מערכת המספרים הבינארית: כיצד מחשבים סופרים
מערכת המספרים הבינארית (בסיס-2) משתמשת בשתי ספרות בלבד — 0 ו-1 — הנקראות ביטים (ספרות בינאריות). כל מחשב, סמארטפון ומכשיר דיגיטלי מאחסן ומעבד פנימית את כל המידע בצורה בינארית, מכיוון שמעגלים חשמליים יכולים לייצג באופן אמין שני מצבים נפרדים: מתח גבוה (1) ומתח נמוך (0).
כל מיקום במספר בינארי מייצג חזקה של 2, בהתקדמות מימין לשמאל:
| מיקום | 2⁷ | 2⁶ | 2⁵ | 2⁴ | 2³ | 2² | 2¹ | 2⁰ |
|---|---|---|---|---|---|---|---|---|
| ערך | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
המרה מבינארי לעשרוני: הכפל כל ביט בערך המיקום שלו וסכם את כל התוצאות.
דוגמה: 10110101₂ = 1×128 + 0×64 + 1×32 + 1×16 + 0×8 + 1×4 + 0×2 + 1×1 = 128 + 32 + 16 + 4 + 1 = 181
המרה מעשרוני לבינארי: חלק שוב ושוב ב-2, רשום את השארית בכל שלב, ואז קרא את השאריות מלמטה למעלה.
דוגמה: המר 181 לבינארי:
- 181 ÷ 2 = 90 שארית 1
- 90 ÷ 2 = 45 שארית 0
- 45 ÷ 2 = 22 שארית 1
- 22 ÷ 2 = 11 שארית 0
- 11 ÷ 2 = 5 שארית 1
- 5 ÷ 2 = 2 שארית 1
- 2 ÷ 2 = 1 שארית 0
- 1 ÷ 2 = 0 שארית 1
קרא את השאריות מלמטה למעלה: 10110101₂ ✓
חשבון בינארי: חיבור, חיסור וכפל
חשבון בינארי פועל לפי אותם כללים כמו עשרוני, אך ההעברה מתרחשת ב-2 במקום 10.
כללי חיבור בינארי: 0+0=0, 0+1=1, 1+0=1, 1+1=10 (העברה 1), 1+1+1=11 (העברה 1)
דוגמה: 1011₂ + 1101₂ (11 + 13 = 24)
1011 + 1101 ------ 11000
עבודה מימין לשמאל: 1+1=10 (רשום 0, העבר 1); 1+0+1=10 (רשום 0, העבר 1); 0+1+1=10 (רשום 0, העבר 1); 1+1+1=11 (רשום 1, העבר 1); ההעברה הסופית רושמת 1. תוצאה: 11000₂ = 24 ✓
השלמה לשתיים (חיסור בינארי): מחשבים מטפלים במספרים שליליים וחיסור באמצעות ייצוג של השלמה לשתיים. כדי למצוא את ההשלמה לשתיים של מספר: הפוך את כל הביטים, ואז הוסף 1.
דוגמה: −13 בהשלמה לשתיים של 8 סיביות: +13 = 00001101₂ → הפוך את כל הביטים → 11110010₂ → הוסף 1 → 11110011₂
זה מאפשר לבצע חיסור כחיבור: 20 − 13 = 20 + (−13).
כפל בינארי הוא אלגנטי: כל מכפלה חלקית היא או 0 (כפל ב-0) או המספר עצמו (כפל ב-1), מוזז שמאלה. דוגמה: 1011₂ × 101₂ (11 × 5 = 55):
1011
× 101
-----
1011 (1011 × 1)
0000 (1011 × 0, מוזז)
1011 (1011 × 1, מוזז פעמיים)
-------
110111₂ = 55 ✓
בינארי במחשוב: ביטים, בתים וגדלי נתונים
הבנת יחידות בינאריות חיונית לכל מי שעובד עם מחשבים, אחסון או מהירויות רשת:
| יחידה | גודל | ערך מקסימלי (ללא סימן) | שימוש נפוץ |
|---|---|---|---|
| ביט | ספרה בינארית אחת | 1 | דגל בוליאני, ערך בינארי בודד |
| ניבל | 4 ביטים | 15 (הקס: F) | ספרה הקסדצימלית אחת |
| בייט | 8 ביטים | 255 | תו בודד (ASCII), ערוץ צבע |
| מילה | 16 ביטים | 65,535 | מערכות 16 סיביות ישנות, Unicode בסיסי |
| מילה כפולה (DWORD) | 32 ביטים | 4,294,967,295 | מספרים שלמים 32 סיביות, כתובות IPv4 |
| מילה מרובעת (QWORD) | 64 ביטים | 18,446,744,073,709,551,615 | מספרים שלמים מודרניים, מצביעים, חותמות זמן |
ערכי צבע: צבעי אינטרנט משתמשים ב-RGB 24 סיביות (8 סיביות לכל ערוץ). #FF5733 = R:255, G:87, B:51. כל ערוץ של 8 סיביות יכול לייצג 256 גוונים (0–255). סך הצבעים האפשריים: 256³ = 16,777,216 (כ-16.7 מיליון).
הרשאות קבצים ב-Unix/Linux: rwxr-xr-- = 111 101 100 בבינארי = 7, 5, 4 באוקטלי = chmod 754. כל קבוצה של 3 ביטים מייצגת הרשאות קריאה (r=4), כתיבה (w=2) וביצוע (x=1) עבור בעלים, קבוצה ואחרים.
פעולות סיביות ויישומייהן
פעולות סיביות מתמרנות ביטים בודדים בתוך מספרים שלמים. הן בסיסיות לתכנות ברמה נמוכה, קריפטוגרפיה, תכנות רשת וקוד קריטי לביצועים.
| פעולה | סימן | התנהגות | דוגמה |
|---|---|---|---|
| AND | & | 1 אם שני הביטים הם 1 | 1010 & 1100 = 1000 |
| OR | | | 1 אם אחד הביטים הוא 1 | 1010 | 1100 = 1110 |
| XOR | ^ | 1 אם הביטים שונים | 1010 ^ 1100 = 0110 |
| NOT | ~ | הפוך את כל הביטים | ~1010 = 0101 |
| הזזה שמאלה | << | הזז ביטים שמאלה (×2 בכל הזזה) | 1011 << 1 = 10110 (×2) |
| הזזה ימינה | >> | הזז ביטים ימינה (÷2 בכל הזזה) | 1011 >> 1 = 0101 (÷2) |
שימושים מעשיים:
- מסיכת סיביות: בדוק אם ביט ספציפי מוגדר:
if (flags & 0b0100) {... }— בודק אם ביט 2 הוא 1. - הגדרת ביט:
flags = flags | 0b0100— מגדיר את ביט 2 ל-1 ללא קשר לערך הנוכחי. - איפוס ביט:
flags = flags & ~0b0100— מאפס את ביט 2 ל-0. - כפל/חילוק מהיר בחזקות של 2:
n << 3= n × 8;n >> 2= n ÷ 4. הזזות סיביות הן פעולות ברמת המעבד, מהירות משמעותית יותר מכפל. - בדיקת זוגי/אי-זוגי:
if (n & 1) { /* אי-זוגי */ }— הביט האחרון של כל מספר אי-זוגי הוא תמיד 1.
השוואת מערכות מספרים: בינארי, אוקטלי, עשרוני, הקסדצימלי
מדעי המחשב משתמשים בארבע מערכות מספרים, כל אחת מתאימה להקשרים שונים:
| מערכת | בסיס | ספרות | שימוש נפוץ |
|---|---|---|---|
| בינארי (בסיס-2) | 2 | 0, 1 | פעולות מעבד, אחסון, לוגיקה |
| אוקטלי (בסיס-8) | 8 | 0–7 | הרשאות קבצים ב-Unix, מערכות ישנות |
| עשרוני (בסיס-10) | 10 | 0–9 | מספרים קריאים לאדם |
| הקסדצימלי (בסיס-16) | 16 | 0–9, A–F | כתובות זיכרון, קודי צבע, קוד מכונה |
המרה מהירה: בינארי ↔ הקסדצימלי (4 ספרות בינאריות = ספרה הקסדצימלית אחת):
| בינארי | הקס | עשרוני | בינארי | הקס | עשרוני |
|---|---|---|---|---|---|
| 0000 | 0 | 0 | 1000 | 8 | 8 |
| 0001 | 1 | 1 | 1001 | 9 | 9 |
| 0010 | 2 | 2 | 1010 | A | 10 |
| 0011 | 3 | 3 | 1011 | B | 11 |
| 0100 | 4 | 4 | 1100 | C | 12 |
| 0101 | 5 | 5 | 1101 | D | 13 |
| 0110 | 6 | 6 | 1110 | E | 14 |
| 0111 | 7 | 7 | 1111 | F | 15 |
קיבוץ 4 סיביות זה הופך את ההקסדצימלי לשימושי ביותר כתיווי קומפקטי לנתונים בינאריים: הערך של 32 סיביות 11001010 00111111 10110101 00001100 הרבה יותר קל לכתיבה כ-CA3FB50C.
בינארי ברשתות: כתובות IP ומסכות רשת
הבנת בינארי חיונית להנדסת רשתות מכיוון שכתובות IPv4 הן ביסודן מספרים בינאריים של 32 סיביות, וחלוקת רשתות — תהליך חלוקת רשתות — מסתמך לחלוטין על פעולות בינאריות.
כתובת IPv4 כמו 192.168.1.100 היא סימון קריא לאדם לערך הבינארי של 32 סיביות:
11000000.10101000.00000001.01100100
מסיכת רשת קובעת איזה חלק מהכתובת מזהה את הרשת ואיזה מזהה את המארח. המסיכה 255.255.255.0 בבינארי היא:
11111111.11111111.11111111.00000000
ה-AND הסיביתי של כתובת ה-IP ומסיכת הרשת נותן את כתובת הרשת:
| רכיב | עשרוני | בינארי |
|---|---|---|
| כתובת IP | 192.168.1.100 | 11000000.10101000.00000001.01100100 |
| מסיכת רשת | 255.255.255.0 | 11111111.11111111.11111111.00000000 |
| רשת (AND) | 192.168.1.0 | 11000000.10101000.00000001.00000000 |
סימון CIDR (למשל, /24) אומר לך כמה סיביות 1 מובילות יש במסיכת הרשת. מסיכת /24 כוללת 24 אחדות ואחריהן 8 אפסים, ומאפשרת 2⁸ − 2 = 254 כתובות מארח שמישות לכל רשת משנה. מסיכת /16 מאפשרת 65,534 מארחים. מהנדסי רשת משתמשים בחשבון בינארי מנטלי מדי יום כדי לתכנן רשתות משנה, לחשב כתובות שידור ולפתור בעיות ניתוב.
בינארי בהצפנה ואבטחה
אלגוריתמי הצפנה מודרניים פועלים לחלוטין ברמה הבינארית, ומתפעלים סיביות בודדות באמצעות שילובים של XOR, הזזות סיביות ופעולות החלפה. הבנת בינארי היא השער להבנת אופן פעולת האבטחה הדיגיטלית.
הצפנת XOR (היסוד של צופנים מודרניים): ל-XOR יש תכונה ייחודית — החלתו פעמיים עם אותו מפתח מחזירה את הערך המקורי: A ⊕ K ⊕ K = A. זה הופך את ה-XOR לבסיס של צופני זרם ופנקס חד פעמי.
דוגמה: הצפנת הבייט 01001101 (האות 'M' ב-ASCII) עם המפתח 10110010:
- טקסט רגיל: 01001101
- מפתח: 10110010
- XOR (הצפנה): 11111111
- XOR שוב עם אותו מפתח (פענוח): 01001101 = 'M' ✓
גדלי מפתחות בהצפנה מודרנית: AES-128 משתמש במפתח של 128 סיביות, כלומר ישנם 2¹²⁸ ≈ 3.4 × 10³⁸ מפתחות אפשריים — יותר ממספר האטומים ביקום הנצפה. AES-256 משתמש במפתחות של 256 סיביות עם 2²⁵⁶ אפשרויות. אפילו המחשבים העליים המהירים ביותר אינם יכולים לבצע כוח גס על מרחבי מפתחות אלה. כל סיבית נוספת מכפילה את מרחב החיפוש, וזו הסיבה שאורך המפתח חשוב באופן אקספוננציאלי בהצפנה.
פונקציות גיבוב כמו SHA-256 מייצרות פלט בינארי של 256 סיביות (32 בתים) מכל קלט. אפילו שינוי של סיבית אחת בקלט מייצר גיבוב שונה לחלוטין — תכונה הנקראת "אפקט מפולת" שהופכת גיבובים לשימושיים לאימות שלמות נתונים, אחסון סיסמאות והנעת טכנולוגיית בלוקצ'יין.
בינארי ומחשוב קוונטי: בעוד שמחשבים קלאסיים משתמשים בסיביות בינאריות (0 או 1), מחשבים קוונטיים משתמשים בקוביטים שיכולים להתקיים בסופרפוזיציה של שני המצבים בו זמנית. למפתח קלאסי של 256 סיביות יש 2²⁵⁶ ערכים אפשריים שיש לבדוק ברצף; מחשב קוונטי שמריץ את האלגוריתם של גרובר יכול לחפש במרחב זה ב-√(2²⁵⁶) = 2¹²⁸ פעולות. זו הסיבה שמפתחים קריפטוגרפיה פוסט-קוונטית — כדי ליצור ערכות הצפנה מבוססות בינארי שנשארות מאובטחות אפילו מול יריבים קוונטיים.
שאלות נפוצות
מדוע מחשבים משתמשים בבינארי במקום בעשרוני?
מעגלים אלקטרוניים אמינים ביותר עם שני מצבים מובחנים בלבד: פועל (מתח גבוה ≈ 1) וכבוי (מתח נמוך ≈ 0). ייצוג של 10 מצבים מובחנים עבור עשרוני ידרוש שליטת מתח מדויקת הרבה יותר ויהיה הרבה יותר רגיש לרעש חשמלי. הפשטות של בינארי מאפשרת למיליארדי טרנזיסטורים לפעול באופן אמין במהירויות GHz עם מיליארדי פעולות בשנייה.
מהו המספר הגדול ביותר שבייט יכול להכיל?
בייט (8 סיביות) יכול לייצג 2⁸ = 256 ערכים שונים. עבור מספרים שלמים לא מסומנים: 0 עד 255. עבור מספרים שלמים מסומנים (השלמה ל-2): −128 עד 127. ערך הבייט הלא מסומן המרבי בבינארי הוא 11111111₂ = 255; בהקסדצימלי זה FF.
כיצד אוכל להמיר מספר שלילי לבינארי?
השתמש בהשלמה ל-2: (1) המר את הגרסה החיובית לבינארי, (2) הפוך את כל הסיביות (0→1, 1→0), (3) הוסף 1. דוגמה — −13 ב-8 סיביות: +13 = 00001101₂, הפוך סיביות = 11110010₂, הוסף 1 = 11110011₂. כך כל המחשבים המודרניים מאחסנים מספרים שלמים שליליים.
מה ההבדל בין בינארי להקסדצימלי?
שניהם מערכות מספרים מיקום המשמשות במחשוב. בינארי (בסיס-2) משתמש רק ב-0 ו-1 — השפה הטבעית של מחשבים. הקסדצימלי (בסיס-16) משתמש ב-0–9 ו-A–F כתיוק קומפקטי לבינארי — כל 4 ספרות בינאריות מתאימות בדיוק לספרה הקסדצימלית אחת. הקס משמש לכתובות זיכרון, קודי צבע (#RRGGBB), וקוד מכונה מכיוון שהוא קומפקטי וקריא יותר מבינארי גולמי.
לשם מה משמשות פעולות ביטביות?
פעולות ביטביות (AND, OR, XOR, NOT, הזזות) מתפעלות סיביות בודדות בתוך מספרים שלמים. שימושים נפוצים: דגלי סיביות והרשאות (Unix chmod), בדיקת זוגי/אי-זוגי (n & 1), כפל/חילוק מהיר בחזקות של 2 (הזזת סיביות), אלגוריתמי הצפנה, פונקציות גיבוב, זיהוי שגיאות CRC, מסכות רשת משנה, ופיתוח משחקים (אחסון מצב קומפקטי בתוך מספר שלם בודד).
מהו נקודה צפה בינארית ומדוע 0.1 + 0.2 ≠ 0.3 בתכנות?
רוב המחשבים המודרניים משתמשים בנקודה צפה בינארית של IEEE 754, המייצגת שברים עשרוניים בבינארי. בדיוק כמו ש-1/3 = 0.3333... לא יכול להיות מיוצג במדויק בעשרוני, 1/10 לא יכול להיות מיוצג במדויק בבינארי (זהו שבר בינארי חוזר אינסופי). זה גורם לשגיאות עיגול זעירות: ברוב השפות, 0.1 + 0.2 = 0.30000000000000004. השתמש בחשבון שלמים (עבודה בסנטים, לא בדולרים) או בספריות עשרוניות לחישובים פיננסיים מדויקים.
כיצד משתמשים בבינארי באחסון נתונים וגדלי קבצים?
אחסון נמדד בבייטים (8 סיביות), קילובייטים (1,024 בייטים), מגה-בייטים (1,024 קילובייטים), גיגה-בייטים (1,024 מגה-בייטים), וכו'. הערה: יצרני כוננים קשיחים משתמשים בתחיליות SI (1 קילובייט = 1,000 בייטים) בעוד שמערכות הפעלה משתמשות בתחיליות בינאריות (1 קיבי = 1,024 בייטים), מה שגורם לפער ה"חלל החסר" לכאורה כאשר אתה קונה אחסון. כונן של 1 טרה-בייט מראה ~931 גיבייטים ב-Windows מכיוון ש-1,000,000,000,000 ÷ 1,073,741,824 ≈ 931.
מהו עשרוני מקודד בינארי (BCD)?
BCD מקודד כל ספרה עשרונית כקבוצת סיביות בינארית של 4: 0=0000, 1=0001,..., 9=1001. אז עשרוני 93 ב-BCD הוא 1001 0011. BCD משמש במערכות פיננסיות (ממנע שגיאות עיגול של נקודה צפה), שעונים דיגיטליים ותצוגות (תצוגות 7 קטעים מפענחות BCD ישירות), ומערכות מיינפריים ישנות. זה פחות חסכוני בחלל מאשר בינארי טהור אך מבטל שגיאות המרה עשרוני-ל-בינארי ביישומים קריטיים.