לדלג לתוכן

0.3 ייצוג המידע הרצאה

הקדמה

שאלות מנחות:
איך הזכרון והמעבד שומרים נתונים?
איך נשמרים הוראות, מספרים, מחרוזות- איך זה קורה?

זה קורה באמצעות ביטים- ביט היא יחידת המידע הכי קטנה שמחשב יכול לשמור.
הערך של ביט אחד הוא 0, או 1.
תדמיינו שלמחשב יש המון מנורות, כאשר מנורה דולקת- היא מסמנת את המספר 1 וכאשר מנורה כבויה היא מסמנת את המספר 0, אלו הם ביטים.
הזכרון (הRAM) יכול לשמור מילוני ביטים, האוגרים שומרים עשרות ביטים- והמחשב משתמש בטכנולוגיה הזו כדי לשמור מידע.

ייצוג המידע

המחשבים שלנו נאלצים לעבוד עם ביטים- מספרים מ0 עד 1, כי זו הדרך היחידה שלהם להציג מידע.
המספרים האלו נקראים מספרים בינארים- מספרים שמוייצגים על ידי הספרות 0, 1.
כדי שנצליח לגרום למחשב לבצע פעולות מתמטיות עם המספרים האלה, כמו חיבור וחיסור שלהם אנחנו צריכים להבין כיצד עובדים עם מספרים בינארים.
דמיינו ויש לנו את הביטים הבאים באוגר מספר 1.
01101011
ואת הביטים הבאים באוגר מספר 2.
11001101

שני האוגרים האלו מכילים 8 ביטים כל אחד. בביטים האלו יש ערכים שונים, לפעמים 0 ולפעמים 1, אפשר להגיד שיש בכל אוגר מספר בינארי.
לפני שננסה להבין כיצד אפשר לחשב את הסכום של שני המספרים הבינארים האלו, קודם אנחנו צריכים להבין בכלל איך אפשר להמיר את המספרים האלו למספרים רגילים, המספרים שאנחנו מכירים.

המספרים שאנחנו מכירים ועבדנו איתם עד היום הם מספרים דצימלים, מספרים דצמילים הם מספרים עם הספרות 0,1,2,3,4,5,6,7,8,9
באמצעות המספרים האלו למדנו לספור,
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22.. וכך הלאה.

כשהיינו קטנים, למדנו שבשביל לספור במספרים דצימלים אנחנו צריכים לספור את כל הספרות, 0,1,2,3,4,5,6,7,8,9 וכשאנחנו מגיעים לספרה האחרונה, אנחנו מוסיפים אחד לספרת העשרות- 10,11,12,13,14,15,16,17,18,19 ואז 20. וכשאנחנו מסיימים לספור את כל הספרות גם בספרת העשרות (99) אנחנו עוברים למאות.. 100,101,102,103,104.. וכך הלאה..

אנחנו עושים בדיוק את אותו הדבר עם מספרים בינארים!
לעומת מספרים דצימלים ששם יש לנו 10 ספרות שונות- במספרים בינארים יש לנו רק 2 ספרות, 0 ו-1, כך שכשנרצה לספור בבינארית נשים לב שמהר מאוד נגיע לספרת העשרות וספרת המאות..
אז איך סופרים בבינארית? באותה דרך שספרנו בדצימלית!
1 - 0
2 - 1
3 - 10
4 - 11
5 - 100
6 - 101
7 - 110
8 - 111
9 - 1000
10 - 1001
11 - 1010
12 - 1011
13 - 1100
14 - 1101
15 - 1110
16 - 1111

ככה מחשבים שומרים מספרים, בביטים!
באמצעות מספרים בינארים אפשר לשמור כל מספר דצימלי שקיים.
שימו לב, קחו למשל את מספר 16- כדי לייצג את כל המספרים עד מספר 16 בבינארית אנחנו צריכים 4 ביטים, כלומר 4 מנורות.
כדי לייצג את כל המספרים עד המספר 8 בבינארית אנחנו צריכים 3 ביטים, כלומר 3 מנורות.
כדי לייצג את כל המספרים עד המספר 4 בבינארית אנחנו צריכים ל2 ביטים, כלומר 2 מנורות
וכדי לייצג את כל המספרים עד המספר 2 בבינארית אנחנו צריכים ביט אחד, כלומר מנורה אחת (הגיוני, זה רק 0 ו1.)

אני לא רוצה להיכנס למתמטיקה ולחשבון, אבל ככל שנוסיף יותר מנורות (יותר ביטים) כך נוכל אקספוננציאלית להציג יותר מידע!
כלומר, אם היה לנו 8 ביטים (8 מנורות)- היינו יכולים להציג 256 מספרים שונים.
אם היה לנו 16 ביטים (16 מנורות)- היינו יכולים להציג 65536 מספרים שונים.
אם היה לנו 32 ביטים (32 מנורות)- היינו יכולים להציג 4294967296 מספרים שונים.
ואם היה לנו 64 ביטים (64 מנורות)- היינו יכולים להציג 18446744073709551616 מספרים שונים.
את החישוב הזה תוכלו לבצע אם תעשו 2 בחזקת כמות הביטים.

2^16 = 65536

כלומר, אוגרים בגודל של 8 ביטים יוכלו להחזיק עד 256 מספרים שונים.
אוגרים בגודל 16 ביטים יכולו להחזיק עד 65536 מספרים שונים.
וכך הלאה.
בוודאי, הנה הגרסה המתוקנת לכתיבה מימין לשמאל (RTL), כך שהביטים, החזקות והערכים מסודרים מימין לשמאל – כמו שצריך בעברית:


המרה

אז איך ניתן להמיר מספר בינארי למספר דצימלי?
כדי להמיר מספר בינארי לדצימלי, אנחנו צריכים להבין שכל ביט (כל מנורה) מייצג חזקת שתיים.
הביט הימני ביותר מייצג את החזקה הנמוכה ביותר, ‎2⁰‎, והביט שמשמאלו מייצג ‎2¹‎, ואז ‎2²‎, וכן הלאה.

לדוגמה, ניקח את המספר הבינארי:

0101

כדי להמיר אותו למספר דצימלי, נכתוב ליד כל ביט את ערכו לפי החזקה שהוא מייצג (מימין לשמאל):

בינארי: 1   0   1   0  
חזקה:   2⁰  2¹  2²  2³  
ערך:    1   2   4   8

עכשיו נכפיל כל ערך של חזקה בביט שמתאים לו:

‎(1×1) + (0×2) + (1×4) + (0×8) = 1 + 0 + 4 + 0 = 5‎
אז ‎0101‎ בבינארי שווה ל־5 בדצימלי.


דוגמה נוספת:

המספר הבינארי:

1011
בינארי: 1   1   0   1  
חזקה:   2⁰  2¹  2²  2³  
ערך:    1   2   4   8

‎(1×1) + (1×2) + (0×4) + (1×8) = 1 + 2 + 0 + 8 = 11‎
אז ‎1011‎ בבינארי שווה ל־11 בדצימלי.


עוד דוגמה.

1101

והחישוב שלו יהיה:
בינארי: 1   0   1   1  
חזקה:   2⁰  2¹  2²  2³  
ערך:    1   2   4   8

‎(1×1) + (0×2) + (1×4) + (1×8) = 1 + 0 + 4 + 8 = 13‎

דוגמה:

אם נרצה להפוך את התהליך — להמיר מספר דצימלי לבינארי — נשתמש בשיטה שנקראת "חלוקה ב־2 עם שארית":

נמיר את המספר 19 לבינארי.

  1. 19 ÷ 2 = 9, שארית 1

  2. 9 ÷ 2 = 4, שארית 1

  3. 4 ÷ 2 = 2, שארית 0

  4. 2 ÷ 2 = 1, שארית 0

  5. 1 ÷ 2 = 0, שארית 1 ← עצירה

עכשיו נרשום את השאריות מהסוף להתחלה:
10011 ← זהו המספר הבינארי של 19.