למה הקסדצימלי?
חלק מהיחידה יסודות במסלול ה-Assembly של Coddy. שיעור 10 מתוך 45.
עכשיו ידוע לך שמחשבים משתמשים בבינארי. אז למה מתכנתי אסמבלי כמעט אף פעם לא כותבים בינארי ישירות?
הבעיה עם מספרים בינאריים:
מספרים בינאריים ארוכים מאוד. הסתכלו על הדוגמה הזאת:
| מספר | בינארי |
|---|---|
| 255 | 11111111 |
| 1000 | 1111101000 |
| 65535 | 1111111111111111 |
כתיבת מחרוזות ארוכות של 1 ו־0 היא איטית, מועדת לשגיאות וקשה לקריאה.
הפתרון: הקסדצימלי (בסיס 16).
הקסדצימלי (או "hex") משתמש ב-16 סמלים:
| ספרה | ערך |
|---|---|
| 0-9 | 0 עד 9 |
| A | 10 |
| B | 11 |
| C | 12 |
| D | 13 |
| E | 14 |
| F | 15 |
למה הקסדצימלי מושלם למחשבים:
ספרה הקסדצימלית אחת מייצגת בדיוק 4 ביטים (חצי בייט).
| ביטים | מספר הספרות ההקסדצימליות הנדרשות |
|---|---|
| 4 ביטים (ניבל) | ספרה הקסדצימלית אחת |
| 8 ביטים (בייט אחד) | 2 ספרות הקסדצימליות |
| 16 ביטים (2 בייטים) | 4 ספרות הקסדצימליות |
| 32 ביטים (4 בייטים) | 8 ספרות הקסדצימליות |
| 64 ביטים (8 בייטים) | 16 ספרות הקסדצימליות |
אותו מספר, שלוש דרכים:
| עשרוני | בינארי | הקסדצימלי |
|---|---|---|
| 255 | 11111111 | FF |
| 1000 | 1111101000 | 3E8 |
| 65535 | 1111111111111111 | FFFF |
שימו לב כמה הקסדצימלי קצר יותר מבינארי.
היכן תיתקלו בהקסדצימלי באסמבלי:
- כתובות זיכרון (כמו
0x7FFFאו0x402000) - קודי ASCII (כמו
0x41עבור 'A',0x0aעבור ירידת שורה)
- ערכי רגיסטרים בכלי ניפוי שגיאות
- ערכי צבע (כמו
0xFF0000עבור אדום)
מספרים הקסדצימליים נכתבים עם קידומת:
| קידומת | דוגמה | משמעות |
|---|---|---|
0x | 0xFF | FF בהקסדצימלי (255 בעשרוני) |
$ | $FF | אותו הדבר (בשימוש בחלק מהאסמבלרים) |
h | FFh | אותו הדבר (סגנון ישן יותר) |
בקורס הזה, אנחנו משתמשים בקידומת 0x: 0x0a, 0x41, 0xFF.
נסו בעצמכם
השיעור הזה לא כולל אתגר קוד.
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
2שיטות ספירה
למה בינארי?מספרים בינארייםמעשרוני לבינארילמה הקסדצימלי?מהקסדצימלי לעשרונימעשרוני להקסדצימליASCII והקסדצימליתרגלו בעצמכם: Assembly אונליין
בדקו המרה: ממיר בסיסי ספירה