בסיס הקסדצימלי

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש

ספירה על בסיס הקסדצימלי היא ספירה על בסיס 16. היא משמשת כיום בעיקר בתחום המחשבים, בזכות התאמתה לייצוג תוכנו של זיכרון המחשב. שימושה דומה לבסיס האוקטלי, אבל יש לה יתרון נוסף: שתי ספרות הקסדצימליות הן בדיוק בַּית אחד - יחידה שגודלה 8 סיביות. בבסיס זה יש 16 ספרות: הספרות מ-0 עד 9 זהות לספרות אלה בבסיס עשרוני, ואת 6 הספרות הבאות מסמנים באותיות מ-A, המייצגת 10 (בבסיס עשרוני), עד F המייצגת 15 (בבסיס עשרוני).

שפות תכנות רבות מאפשרות כתיבה של קבועים הקסדצימליים, שמייצגים לא רק ספרות אלא תווים כלשהם, כגון תווי ASCII. בשפת C, למשל, קבוע הקסדצימלי מתחיל בסימן '0x', למשל 0x5A.

המרת מספר דצימלי למספר הקסדצימלי[עריכת קוד מקור | עריכה]

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

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

  • נחלק אותו ב-16. נקבל את המספר 274203 ושארית 8. נרשום בצד 8.
  • נחלק את 274203 ב-16. נקבל את המספר 17137 ושארית 11, כלומר B. נצרף את B משמאל: B8.
  • נחלק את 17137 ב-16. נקבל 1071 ושארית 1. נצרף את 1 משמאל: 1B8.
  • נחלק את 1071 ב-16. נקבל 66 ושארית 15, כלומר F. נצרף את F משמאל: F1B8.
  • נחלק את 66 ב-16. נקבל 4 ושארית 2. נצרף את 2 משמאל: 2F1B8.
  • נחלק את 4 ב-16 ונקבל 0 ושארית 4. נצרף את 4 משמאל: 42F1B8.

קיבלנו ש-4387256 בבסיס דצימלי הוא 42F1B8 בבסיס הקסדצימלי.

המרת מספר הקסדצימלי למספר דצימלי[עריכת קוד מקור | עריכה]

כדי להעביר מספר הקסדצימלי למספר דצימלי, יש להכפיל את הספרה ההקסדצימלית, המומרת לערך הדצימלי שלה (A=10 ,B=11 וכו') בחזקה המתאימה של 16, לפי מיקום הספרה במספר, האם ספרה היא אחדה, עשרה, מאה וכדומה).


n1*160+n2*161+n3*162+n4*163+...+nm*16m-1

דוגמה: נתון המספר ההקסדצימלי AF34BD. נפרק את המספר לספרותיו. בעצם נתון לנו כאן D אחדות, B עשרות, 4 מאות, 3 אלפים, F עשרות אלפים ו-A מאות אלפים. במילים אחרות, אפשר לתרגם את המשפט הנ"ל לביטוי הבא:

D*160+B*161+4*162+3*163+F*164+A*165

ואם נמיר את הערכים ההקסדצימליים לערכים הדצימליים שלהם (קרי, האותיות למספרים) הביטוי יראה כך:

13*160+11*161+4*162+3*163+15*164+10*165

נשאר רק לפתור את הביטוי, ולקבל את התוצאה: 11482301, שהיא AF34BD בערכים דצימליים.

המרת מספר הקסדצימלי למספר בינארי[עריכת קוד מקור | עריכה]

כדי להעביר מספר הקסדצימלי למספר בינארי יש להפוך כל ספרה הקסדצימלית לארבע הספרות הבינאריות המתאימות לה, ולאחר מכן לכתוב אותן לפי הסדר של המספר ההקסדצימלי.

דוגמה: נתון המספר ההקסדצימלי AF34BD. ניקח כל ספרה הקסדצימלית, ונהפוך אותה למספר בינארי בן 4 ספרות.

A בבסיס 16 שווה ל-1010 בבסיס 2

F בבסיס 16 שווה ל-1111 בבסיס 2

3 בבסיס 16 שווה ל-0011 בבסיס 2

4 בבסיס 16 שווה ל-0100 בבסיס 2

B בבסיס 16 שווה ל-1011 בבסיס 2

D בבסיס 16 שווה ל-1101 בבסיס 2

כעת נכתוב את כל ספרות המספרים הבינאריים לפי הסדר ההקסדצימלי: 101011110011010010111101 (במידה והספרה השמאלית ביותר של התוצאה היא 0 יש להשמיטה עד שנגיע למצב בו הספרה השמאלית ביותר היא 1).

קיבלנו שהתוצאה 101011110011010010111101 היא AF34BD בערכים בינאריים.

המרת מספר בינארי למספר הקסדצימלי[עריכת קוד מקור | עריכה]

כדי להעביר מספר בינארי למספר הקסדצימלי יש לחלק את המספר הבינארי לקבוצות של 4 ספרות כל אחת (במידה, ומספר הספרות הבינאריות אינו מתחלק ב-4 כמו מספר בעל 7 ספרות יש להוסיף 0 משמאל למספר כדי להגיע למספר ספרות המתחלק ב-4). לאחר מכן יש להפוך כל 4 ספרות בינאריות מימין לשמאל בספרה ההקסדצימלית המתאימה לה, ולבסוף לכתוב אותן לפי הסדר הבינארי.

דוגמה: נתון המספר הבינארי 110110110

המספר הבינארי בעל 9 ספרות, ולכן יש להצמיד לשמאלו שלושה אפסים כדי להביאו למצב שבו מספר הספרות יתחלק ב-4: 000110110110

0001 בבסיס 2 שווה ל-1 בבסיס 16

1011 בבסיס 2 שווה ל-B בבסיס 16

0110 בבסיס 2 שווה ל-6 בבסיס 16

כעת נכתוב את כל ספרות המספרים ההקסדצימליים לפי הסדר הבינארי: 1B6

קיבלנו שהתוצאה 1B6 היא 110110110 בערכים הקסדצימליים.

טבלת המרה לבסיס בין בסיסי מספרים נפוצים[עריכת קוד מקור | עריכה]

עשרוני: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
הקסדצימלי: 0 1 2 3 4 5 6 7 8 9 A B C D E F 10
אוקטלי: 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20
בינארי: 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 10000


ראו גם[עריכת קוד מקור | עריכה]

קישורים חיצוניים[עריכת קוד מקור | עריכה]