כל מחשב, מהטלפון ועד שרת ענק, עושה ארבעה דברים: מקבל קלט, מעבד אותו, מוציא פלט ושומר בזיכרון. ובפנים הכל כתוב רק ב-0 וב-1. כאן בונים מספר מביטים ומריצים תוכנית פייתון שהופכת מספר לבינארי. כדאי להיזכר קודם בנורות של בינארי ובחשיבה ממוחשבת. אחר כך ממשיכים למשתנים וטיפוסים.
קלט הוא מה שנכנס למחשב: מקלדת, עכבר, מיקרופון, מצלמה. פלט הוא מה שיוצא: מסך, רמקול, מדפסת. בפייתון input() קורא קלט, ו-print() מוציא פלט.
המעבד מחשב: מחבר, משווה, מחליט. מיליארדי פעולות בשנייה. הזיכרון שומר את הנתונים שהתוכנית צריכה עכשיו, והאחסון שומר קבצים גם כשהמחשב כבוי.
בתוך המחשב יש מתגים זעירים: דולק או כבוי. דולק הוא 1, כבוי הוא 0. כל מתג כזה הוא ביט. מספרים, אותיות, תמונות ושירים נשמרים כשורות של ביטים.
בבינארי כל מקום שווה פי 2 מהמקום שמימינו: 1, 2, 4, 8, 16 וכן הלאה. למשל 1101 הוא 8 + 4 + 0 + 1 = 13.
הזיזו את המחוון או לחצו על הביטים כדי להדליק ולכבות אותם. מתחת יש תוכנית פייתון שהופכת את המספר לבינארי: היא מחלקת ב-2 שוב ושוב, ורושמת את השארית. לחצו "שורה הבאה" ועקבו אחרי n ו-bits.
נסו את אלה:
בתוכנית יש לולאת while: שורות 5 ו-6 חוזרות כל עוד n גדול מ-0. את הלולאות נלמד לעומק בלולאות בפייתון.
אפשר לשנות את הקוד ולהריץ פייתון אמיתי. בפעם הראשונה הטעינה לוקחת כמה שניות.
בלי 2, פייתון קורא את הספרות כמספר רגיל. כדי לקרוא בינארי צריך לכתוב את הבסיס.
✗ יוצא 101print(int("101"))
✓ יוצא 5print(int("101", 2))
הביט הימני שווה 1. כל ביט משמאלו שווה פי 2. לכן 100 בבינארי הוא 4, לא 1.
✗ "100 זה 1"# 1 + 0 + 0 = 1 ?
✓ 4 + 0 + 0 = 4print(int("100", 2)) # 4
בבייט יש 256 אפשרויות, אבל הן מתחילות ב-0. לכן הגדול ביותר הוא 255. ל-256 צריך ביט תשיעי.
✓ 8 ביטיםprint(bin(255)) # 0b11111111
✗ כבר 9 ביטיםprint(bin(256)) # 0b100000000
bin מחזיר מחרוזת שמתחילה ב-0b, לא מספר. אי אפשר לחבר אליה מספר. כדי לחשב, הופכים חזרה עם int.
print(bin(5) + 1)
✓ יוצא 6print(int(bin(5), 2) + 1)
קופה בחנות: מקלידים מחיר של מוצר וכמה יחידות קונים, והקופה מדפיסה את הסכום. בואו נראה איפה בתוכנית יש קלט, איפה עיבוד ואיפה פלט. הקלט כאן: מחיר 12 ו-3 יחידות.
כי קל מאוד לבנות מתג עם שני מצבים בלבד: יש חשמל או אין. מתג כזה כמעט לא טועה, וגם זעיר מאוד. במעבד אחד יש מיליארדי מתגים כאלה. נסו במעבדה.
ביט הוא ספרה אחת: 0 או 1. בייט הוא 8 ביטים יחד, ובו אפשר לשמור מספר מ-0 עד 255 או אות אחת. קובץ של מגה בייט הוא בערך מיליון בייטים.
הזיכרון שומר את מה שהמחשב עובד עליו עכשיו, והוא מהיר מאוד, אבל נמחק כשמכבים. האחסון, כמו כונן או כרטיס זיכרון, שומר קבצים גם בלי חשמל. תרגלו למטה.