למה משתמשים בהקסדצימל?

השפה שהמכונה אליה אנחנו מדברים מדברת בבינארי כמובן, כלומר אם למכונה היה ילדון שהיא רצתה ללמד לספור עד עשר, היא לא תוכל להשתמש ב10 ספרות (אצבעות) כמונו. היא תיאלץ להשתמש בשתי ספרות: 0 ו-1. אנחנו בני האדם סופרים בבסיס של 10 ספרות, ואילו מחשבים בבסיס של 2 ספרות. הקסדצימל אומר אחרת: נספור ב16 ספרות! ומאיפה נביא את האקסטרה 6 ספרות? מהאותיות בשפה האנגלית A-F.

הסיבה למה נבחרו האותיות F-A מרגיש אינטואיטיבי- כי הוא אכן אינטואיטיבי. אנחנו מכירים את הסדר של האותיות מה-‘קטן’ ל’גדול’, וזאת בדיוק הסיבה שאינטואיטיבי לבחור באותיות. וזאת גם אחת הסיבות לכך שאנחנו אינטואיטיבית נהיה מוגבלים בכמות הספרות שאיתן נוכל לספור- לאחר ה Z-A האנגלית, נוכל להמשיך להוסיף רק ספרות כמו $,%,# וכל’. מי יודע מי הספרה הכי קטנה?

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

מכיוון שייצוג טריוויאלי של אות הינה byte אחד או 8 ביטים, אנחנו יכולים לייצג אות בעזרת 2 ספרות בלבד בהקס ע"י כך שכל ספרה בהקס מיוצגת ע"י 4 תאים עם שתי אפשרויות, 0 או 1. מכיוון שלכל תא יש שתי אפשרויות, אז סכום האפשרויות הוא 4^2, שזה בדיוק 16 הספרות שיש לנו בהקס. 0000 יהיה 0, 1111 יהיה F.

התרגום מבינארי להקס וההפך הוא מאוד נוח. מחלקים רפרזנטציה בבינארי לקבוצות של 4. (הקונבנציה היא להתחיל מימין לשמאל. אם יש מספר אי זוגי קטן מ-4, משלימים אפסים לימין) ומתרגמים כל קבוצה של 4 לרפרזנטציה שלה ב-hex. בשביל לתרגם ההפך, פשוט לוקחים ספרה ספרה בהקס, וממירים למקבץ של 4 הספרות בבינארי. למשל: 0001-0001 מתורגם ל-11. החלוקה ל-4 דומה לחלוקה שאנחנו עושים עם ספירה רגילה, כשאנחנו מחלקים מספרים ל-3 (100,000,000). באופן כללי כל בסיס שמתחלק ב-2 יהיה לנו נוח לספירה בגלל שבינארי הוא מטבעו 2 אפשרויות. 16 נלקח כבסיס הפופולארי בעיקר מתאמי נוחות והקלילות שלו לייחס מידע מביטים\בייטים.

אחרי שכיווצנו את המידע שמועבר (בין מכונות למשל) להקסדצימל- אפשר לשאול את עצמינו, איך נבדיל אם המכונה שלחה לנו מידע בתצורה של הקס? המספר ‘11’ אומר שני דברים שונים בבינארי והקס. הפתרון לכך הוא להצמיד בהתחלה סימן שמצהיר שמה שנשלח הוא מידע בתצורה של הקס. דוגמאות לכך הן ‘0x’ שמופיעה הרבה במערכות מבוססות unix, וכמובן בצבעים- כאשר מתחילים עם האשטאג ‘#’ ואחריו 3 זוגות של תווים כשל כל זוג מסמל 0-255 אפשרויות לאדום, כחול וירוק. בתמונה: איך להעביר ‘מספר רגיל’ מהקסדצימל לדצימל.

לטעון תגובות?