מערכות ספרות והמרות
הוצג| English | משמעות |
|---|---|
| byte/baɪt/ | בייט |
| denary/ˈdiːnəri/ | מערכת עשרונית |
| binary/ˈbaɪnəri/ | מערכת דו-ספרתית |
| bit/bɪt/ | ביט |
| nibble/ˈnɪbl/ | ניבל |
| hexadecimal/ˌheksəˈdesɪml/ | מערכת שש-עשרונית |
| register width/ˈredʒɪstə wɪtθ/ | רוחב רגיסטר |
| kibi/ˈkɪbi/ | קִיבי |
הטרה-בייט שלא היה טרה-בייט
- בשנת 2005 קונה קליפורני כונן קשיח עם תווית של 80 GB. המחשב דיווח על 74.5 GB. הוא התפנה לבית המשפט, והיצרנים לבסוף פיצו: הם חשבו ג'יגה-בייט כמיליארד בייטים, והמערכת ההפעלה חשבה אותו כ$2^{30}$.
- אף אחד מהם לא שיקר. ישנם שתי משפחות של קידומים, אחת המבוססת על מעריכי עשר ואחת על מעריכי שתיים, והן מתרחקות זו מזו יותר ככל שהמספר גדל.
- כל מייצוג הנתונים נשען על רעיון זה: מחשב אינו מאחסן כלום למעט 0 ו-1, והכל השאר הוא הסכמה לגבי האופן לקרוא אותם.
- שיעור זה עוסק בשלושת מערכות המספרים, בהמרות ביניהן ובשתי משפחות הקידומים.
שלושת מערכות המספרים
- מערכת עשרונית (בסיס 10) משתמשת בספרות 0 עד 9, עם ערכי מקום שהם מעריכי עשר. זוהי מערכת השימוש היומיומי.
- מערכת בינארית (בסיס 2) משתמשת ב-0 וב-1, עם ערכי מקום שהם מעריכי שתיים. ספרה אחת היא ביט; 4 ביטים הם ניבל; 8 ביטים הם байт.
- מערכת העשירית עשרונית (בסיס 16) משתמשת ב-0 עד 9 ולאחר מכן ב-A עד F עבור 10 עד 15. ספרה אחת בעשירית עשרונית עומדת בדיוק על 4 ביטים, ולכן זוהי המקוצה שמפתחים משתמשים בה לבינאריות.
| עשרונית | בינארית | עשירית עשרונית |
|---|---|---|
| 10 | 1010 |
A |
| 15 | 1111 |
F |
| 16 | 0001 0000 |
10 |
| 255 | 1111 1111 |
FF |

כל מערכת היא ערכי מקום; רק הבסיס משתנה
מערכות ספרות
בייט = סכום ערכי המקומות
לכל ביט יש משקל של חזקה של שתיים — הפוך את הביטים וצפה עדכון הערך העשרוני וההקסדצימלי.
כמה ביטים מייצגת דיגיט הוקסדצימלי אחד?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
דיגיט הוקסדצימלי אחד (0–F) מכסה 16 ערכים = $2^4$, ולכן הוא מתאים בדיוק ל-4 ביטים (ניבל).
כמה ביטים יש בבייט אחד?
Difficulty 2/5 · 140 coins + a small bonus on first completion today
בייט הוא 8 ביטים (וגם ניבל הוא 4 ביטים).
מערכת עשרונית למערכת בינארית
- שיטה 1, ערכי מקום: כתוב את מעריכי שתיים, $128, 64, 32, 16, 8, 4, 2, 1$, וחסר את הגדול ביותר שנכנס, וחזור על הפעולה עם הנותר. הנח 1 תחת כל אחד משתמש בו.
- שיטה 2, חלוקה חוזרת: חלק ב-2 שוב ושוב, וכתוב כל שארית, ואז קרא את השאריות מלמטה למעלה.
- $42 = 32 + 8 + 2$, ולכן הביטים תחת 32, 8 ו-2 הם 1 והשאר הם 0:
0010 1010.

חסר את מעריך שתיים הגדול ביותר שנכנס, וחזור על הפעולה
המרת עשרוני $13$ לבנארי (לא נדרש פורמט 8 ביטים — רק הביטים המשמעותיים).
Difficulty 1/5 · 100 coins + a small bonus on first completion today
$13 = 8 + 4 + 1$, ולכן העמודות 8, 4, 1 מוגדרות: 1101.
המרת בנארי 00101010 לעשרוני.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
$32 + 8 + 2 = 42$ (העמודות 32, 8 ו-2 מוגדרות).
דוגמה מופת: עשרונית 200 לבינארית ועשירית עשרונית
- $200 = 128 + 64 + 8$, ולכן הקוד הממוני (בינארי) ב-8 ביט הוא
1100 1000. - חלוקה לניבלים מימין לשמאל:
1100שווה ל-12, כלומר C;1000שווה ל-8. לכן הקוד ההקסדצימלי הואC8. - בדקו בערך המקום בכיוון ההפוך:
C8$= 12 \times 16 + 8 = 200$. ✓ תמיד להראות את הדרך; ההמרה עצמה מובילה נקודות.
בינארי והקסדצימלי, בשני הכיוונים
- מבינארי להקסדצימלי: קבצו את הביטים לניבלים מימין לשמאל, השלימו את הקבוצה השמאלית ביותר באפסים, ומישרו כל ניבל.
0010 0010 1110הופך ל2 2 E, ולכן22E. - מההקסדצימלי לבינארי: החליפו כל ספרת הקסדצימלי בדפוס של 4 ביט משלו. אין צורך בחישוב.
- מההקסדצימלי לעשורי: כפילו כל ספרה בערך המקום שלה, $16^2 = 256$, $16^1 = 16$, $16^0 = 1$.
22E$= 2 \times 256 + 2 \times 16 + 14 = 558$.
המרת הוקסדצימלי 2E לעשרוני.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
$2 \times 16 + 14 = 32 + 14 = 46$ (E שווה ל-14).
המיר את המספר הבינארי 0010 0010 1110 למערכת הקסדצימלית.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
כל ניבל מומר בנפרד, מימין לשמאל: 0010 = 2, 0010 = 2, 1110 = 14 = E.
כמה ביטים ערך זקוק?
- בשאלות במבחן קבוע רוחב הרגיסטר (8, 12 או 16 ביט), ועליכם להשלים באפסי בולאה עד לרוחב זה. $558$ ב-12 ביט הוא
0010 0010 1110, לעולם לא10 0010 1110. - מספר שלם ללא סימן בטווח 0 עד $2^n - 1$ דורש $n$ ביט: 200 דורש 8 ביט (8 ביט מגיעים ל-255), 1000 דורש 10 ביט (10 ביט מגיעים ל-1023), 16 דורש 5 ביט (4 ביט עוצרים ב-15).
- ספרת הקסדצימלי אחת דורשת 4 ביט, ספרת BCD אחת דורשת 4 ביט, ואחד מאותו ASCII דורש 7 ביט, או 8 עבור ASCII מורחבת.
כתוב 558 בעשרוני כמספר בנארי ב-12 ביטים (ארבעה ביטים לכל קבוצה, רוחבים מותרים).
Difficulty 1/5 · 100 coins + a small bonus on first completion today
558 = 512 + 32 + 8 + 4 + 2. מוסיפים אפסים בהתחלה כדי להגיע ל-12 הביטים הנדרשים בשאלה; תשובה שאינה מכילה אפסים בהתחלה לא תקבל ציון.
דוגמה פתורה: המספר המינימלי של ביטים
- מערכת חייבת לאחסן ערכים מ-0 עד 1000. מהו המספר הקטן ביותר של ביטים?
- שאלו איזה מעריכת של 2 עוברת לראשונה על 1000. $2^9 = 512$, קטן מדי; $2^{10} = 1024$, ולכן 10 ביט מחזיקים 0 עד 1023 ו-1000 מתאים.
- התשובה היא 10 ביט, והסיבה היא הטווח, לא הספירה. טרד נפוץ: 16 דורש חמש ביט, כי ארבע ביט עוצרים ב-15.
מהו המספר הקטן ביותר של ביטים שיכול לאחסן כל ערך לא שלילי בטווח 0 עד 1000?
Difficulty 2/5 · 140 coins + a small bonus on first completion today
9 ביטים מגיעים ל-511, 10 ביטים מגיעים ל-1023. השאלה עוסקת בטווח שהביטים מכסים, ולא במספר הספרות.
מקדמות בינאריות ומקדמות עשוריות
- מקדמות עשוריות הן מעריכות של עשר ומשמשות לקיבולת דיסקים ומהירויות רשת: קילו $= 10^3$, מגה $= 10^6$, ג'יגה $= 10^9$, טרה $= 10^{12}$.
- מקדמות בינאריות הן מעריכות של שתיים ומשמשות לגדלי זיכרון: קיבי (Ki) $= 2^{10} = 1024$, מיבי (Mi) $= 2^{20}$, גיבי (Gi) $= 2^{30}$, טיבי (Ti) $= 2^{40}$.
- אז דיסק "1 TB" מכיל $10^{12}$ בytes, אך מערכת הפעלה שמדווחת ב-TiB מחלקת ב$2^{40}$ ותראה כ-0.91. לא אבד דבר; שימשו יחידות שונות.
כמה בייטים יש ב-1 קיבייט (KiB)?
Difficulty 2/5 · 140 coins + a small bonus on first completion today
קיובייט הוא $2^{10} = 1024$ בייטים (קדמה בינרית, המשמשת לזיכרון).
כונן הנמכר כ-1 TB מכיל פחות בייטים מאשר 1 TiB של זיכרון.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
1 TB שווה ל-10^12 בייטים; 1 TiB שווה ל-2^40, בערך 1.1 x 10^12. קדמות עשרוניות לכוננים, וקדמות בינריות לזיכרון.
היכן הקסדצימלי משמש בפועל
- כתובות זיכרון וקוד מכונה, משום שספרת אחת בתעשרה-שש עשרית היא בדיוק ניביל, ובאייט הוא בדיוק שתי ספרות בתעשרה-שש עשרית, ולכן פריסת נתונים קריאה לעין.
- צבעים בעמודי אינטרנט:
#FF8800הוא באייט אחד לכל אדום, ירוק וכחול. כתובות MAC וקודי שגיאה גם כן. - הסיבה תמיד אותה: תעשרה-שש עשרית היא קיצור לבנארי שאדם יכול לקרוא ולכתוב ללא טעויות, ולא מערכת שהמחשב עצמו משתמש בה.
אين משתמשים בהקסדציוניל בפועל? סמן את כל האפשרויות החלות.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
הקסדציוניל הוא קיצור קריא לעין עבור בינרי: ספרה אחת לכל ניבל, שתי ספרות לבית. המעבד עצמו פועל במערכת בינרית.
סימונים נופלים מהיד
- מרחב לפי רוחב השאלה. תשובה ללא מרחב מאבדת את הנקודה גם אם הביטים נכונים.
- להרכיב ניבילים מימין לשמאל, לא משמאל לימין, או שכל ספרה בתעשרה-שש עשרית תזוז.
- 4 ביטים מגיעים ל-15, 8 ביטים מגיעים ל-255, 10 ביטים מגיעים ל-1023. "כמה ביטים" היא שאלה על **טווח
- קיבייט הוא 1024 בייטים וקיילוביט הוא 1000. ציין איזה מושג השתמשת בחישוב כלשהו לגודל.
הבנתך מושלמת
- בסיס עשרוני 10, בסיס בינארי 2 (ביט, ניבל = 4 ביטים, בייט = 8 ביטים), בסיס הקסדצימלי 16 שבו ספרה אחת תואמת בדיוק לניבל אחד
- המרה מערכה עשרונית לבינארית על ידי חיסור מעצמות של 2 או בחלוקות חוזרות בקריאת שאריות מלמטה למעלה; המרה מביןארית להקסדצימל על ידי קבוצות של ניבלים מימין לשמאל; המרה מהקסדצימל לעשרוני לפי ערך מקום
- מילוי לרוחב הרשמה; ערך ללא סימן דורש $n$ ביטים כאשר $2^n$ לראשונה עולה עליו
- קידומים עשרוניים הם מעצמות של עשר (דיסקים, רשתות), קידומים בינאריים מעצמות של שתי (זיכרון): קיבי $= 1024$