איך לחסר מספרים בינאריים?
חיסור מספרים בינאריים דומה מאוד לתהליך החיסור במספרים עשרוניים, עם הבדל עיקרי אחד: בבינארי ישנן שתי ספרות בלבד, 0 ו-1.
המפתח להבנת החיסור הבינארי הוא מושג השאילה, שמתפקד בצורה שונה מעט כאשר מחסרים מספרים בינאריים.
החוקים הבסיסיים של חיסור בינארי
החוקים הבסיסיים של חיסור בינארי הם כדלהלן:
- 0 - 0 = 0
- 1 - 0 = 1
- 0 - 1 = 0
המקרה המעניין מתרחש כשנדרש לחסר 1 מ-0. במצב כזה מתבצעת שאילה מהטור שמשמאל.
דוגמה 1:
1011-1001=?
נתחיל בצעד הראשון. ניישר את המספרים כך שכל ספרה עומדת בטור הנכון:
1 0 1 1
- 1 0 0 1
------------
? ? ? ?
כמו בחיבור בינארי, עובדים מימין לשמאל, טור אחר טור.
-
מתחילים מחיסור הטור הימני ביותר
1-1=0
את התוצאה נרשום מתחת לקו:1 0 1 1 - 1 0 0 1 ------------ 0 -
עוברים לחסר את הטור השני מימין:
1-0=11 0 1 1 - 1 0 0 1 ------------ 1 0 -
עוברים לחסר את הטור השלישי מימין:
0-0=01 0 1 1 - 1 0 0 1 ------------ 0 1 0 -
עוברים לחסר את הטור הרביעי מימין:
1-1=01 0 1 1 - 1 0 0 1 ------------ 0 0 1 0
אימות התוצאה:
אחרי שסיימנו לחסר את כל ארבעת הטורים קיבלנו תוצאה שהיא 10. לצורך וידוא נכונות החישוב, נמיר את המספרים מבינארי לעשרוני:
1 0 1 1 (11)
- 1 0 0 1 (9)
--------
1 0 (2)
- החישוב אושר והוא נכון ✅
אם אתה זקוק להסבר מעמיק על המרה בין בינארי לעשרוני ולהיפך, כדאי לקרוא את המדריך "מהם מספרים בינאריים וכיצד להמיר מספרים מייצוג עשרוני לבינארי והפוך".
דוגמה 2:
1001-101=?
נתחיל בצעד הראשון. ניישר את המספרים כך שכל ספרה עומדת בטור הנכון:
1 0 0 1
- 0 1 0 1
------------
? ? ? ?
נחסר מימין לשמאל.
-
נחסר את הטור הימני ביותר, כאשר 1-1=0:
1 0 0 1 - 0 1 0 1 ------------ 0 -
נחסר את הטור השני מימין, 0-0=0:
1 0 0 1 - 0 1 0 1 ------------ 0 0 -
הטור השלישי מימין מצריך לחסר 1 מ-0: 0-1=?, דבר המחייב שאילה.
נשאיל 1 מהטור השמאלי, נהפוך את הספרה מ-1 ל-0, ונחליף את ה-0 בטור הנוכחי ל-2:
⓪ ②100 1 - 0 1 0 1 ------------ 0 0כעת נחסר 1 מ-2 בטור השלישי:
⓪ ②100 1 - 0 1 0 1 ------------ 1 0 0 -
נחסר את הטור השמאלי ביותר: 0-0=0:
⓪ ②100 1 - 0 1 0 1 ------------ 0 1 0 0
רגע, עוד לא סיימנו. נמיר את המספרים לעשרוניים כדי לוודא: 9-5=4. החישוב אושר והוא נכון ✅
דוגמה 3:
1000-101=?
כאן נדגים חיסור בינארי שבו נדרשת שאילה ממספר טורים.
נתחיל בצעד הראשון. ניישר את המספרים כך שכל ספרה עומדת בטור הנכון:
1 0 0 0
- 0 1 0 1
------------
? ? ? ?
נחסר מימין לשמאל.
-
בטור הימני ביותר החיסור אינו אפשרי באופן ישיר, כיוון ש-1 קטן מ-0. לכן, נדרש לבצע שאילה אותה נעשה מהטור השמאלי הקרוב ביותר שמכיל את הספרה 1.
-
הטור שממנו שואלים (הטור השמאלי הקרוב עם 1) הופך ל-0.
-
כל טור ביניים בין הטור השואל לטור שממנו שואלים משתנה ל-1.
-
הטור הנוכחי (עליו אנו עובדים כעת) מקבל ערך של 2.
ככה זה נראה 🤯:
⓪①①②1000- 0 1 0 1 ------------נחסר כעת בטור הימני: 2-1=1:
⓪①①②1000- 0 1 0 1 ------------ 1 -
-
בטור השני מימין 1-0=1:
⓪①①②1000- 0 1 0 1 ------------ 1 1 -
בטור השלישי מימין 1-1=0:
⓪①①②1000- 0 1 0 1 ------------ 0 1 1בטור האחרון 0-0=0:
⓪①①②1000- 0 1 0 1 ------------ 0 0 1 1
רגע, עוד לא סיימנו. נמיר את המספרים לעשרוניים כדי לוודא: 8-5=3. החישוב אושר והוא נכון 🎉
דוגמה 4:
10101-110=?
נתחיל בצעד הראשון. ניישר את המספרים כך שכל ספרה עומדת בטור הנכון:
1 0 1 0 1
- 1 1 1 0
------------
? ? ? ? ?
נעבוד מימין לשמאל.
-
בטור הימני ביותר 1-0=1:
1 0 1 0 1 - 1 1 1 0 ------------ 1 -
בטור השני מימין צריך לחסר 1 מ-0 דבר המחייב שאילה מהטור הכי קרוב משמאל שערכו הוא 1:
⓪② 1 0101 - 1 1 1 0 ------------ 1אחרי ששאלנו נחסר 1 מ-2 כדי לפתור את הטור:
⓪② 1 0101 - 1 1 1 0 ------------ 1 1 -
נעבור לטפל בטור השלישי מימין מה שמחייב אותנו לחסר 1 מ-⓪, ולפיכך מחייב שאילה. כיוון שאנחנו לא יכולים לשאול מהטור הסמוך משמאל בו מופיעה הספרה 0, נשאל מהטור הכי סמוך משמאל בו מופיעה הספרה 1:
⓪①②⓪②10101 - 1 1 1 0 ------------ 1 1נחסר את הטור השלישי מימין: ②-1=1:
⓪①②⓪②10101 - 1 1 1 0 ------------ 1 1 1 -
נחסר את הטור הרביעי מימין: ①-1=0:
⓪①②⓪②10101 - 1 1 1 0 ------------ 0 1 1 1 -
הטור השמאלי ביותר הוא ⓪ כי אין מה לחסר:
⓪①②⓪②10101 - 1 1 1 0 ------------ 0 0 1 1 1
זה לא נגמר עד שלא בודקים!
נמיר את המספרים לעשרוניים כדי לוודא:
21-14=7.
החישוב אושר והוא נכון
🚀.
אולי גם זה יעניין אותך
מהם מספרים בינאריים וכיצד להמיר מספרים מייצוג עשרוני לבינארי והפוך
לכל המדריכים בסדרת כישורי מחשב באתר רשתטק
אהבתם? לא אהבתם? דרגו!
0 הצבעות, ממוצע 0 מתוך 5 כוכבים
המדריכים באתר עוסקים בנושאי תכנות ופיתוח אישי. הקוד שמוצג משמש להדגמה ולצרכי לימוד. התוכן והקוד המוצגים באתר נבדקו בקפידה ונמצאו תקינים. אבל ייתכן ששימוש במערכות שונות, דוגמת דפדפן או מערכת הפעלה שונה ולאור השינויים הטכנולוגיים התכופים בעולם שבו אנו חיים יגרום לתוצאות שונות מהמצופה. בכל מקרה, אין בעל האתר נושא באחריות לכל שיבוש או שימוש לא אחראי בתכנים הלימודיים באתר.
למרות האמור לעיל, ומתוך רצון טוב, אם נתקלת בקשיים ביישום הקוד באתר מפאת מה שנראה לך כשגיאה או כחוסר עקביות נא להשאיר תגובה עם פירוט הבעיה באזור התגובות בתחתית המדריכים. זה יכול לעזור למשתמשים אחרים שנתקלו באותה בעיה ואם אני רואה שהבעיה עקרונית אני עשוי לערוך התאמה במדריך או להסיר אותו כדי להימנע מהטעיית הציבור.
שימו לב! הסקריפטים במדריכים מיועדים למטרות לימוד בלבד. כשאתם עובדים על הפרויקטים שלכם אתם צריכים להשתמש בספריות וסביבות פיתוח מוכחות, מהירות ובטוחות.
המשתמש באתר צריך להיות מודע לכך שאם וכאשר הוא מפתח קוד בשביל פרויקט הוא חייב לשים לב ולהשתמש בסביבת הפיתוח המתאימה ביותר, הבטוחה ביותר, היעילה ביותר וכמובן שהוא צריך לבדוק את הקוד בהיבטים של יעילות ואבטחה. מי אמר שלהיות מפתח זו עבודה קלה ?
השימוש שלך באתר מהווה ראייה להסכמתך עם הכללים והתקנות שנוסחו בהסכם תנאי השימוש.