Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

איך להמיר הקסדצימלי לבינארי ובינארי להקסדצימלי

כמתכנתים, לעתים נאלץ לבצע פעולת המרה מהקסדצימלי לבינארי או ההיפך, במאמר זה נציג שיטות פשוטות ונוחות לביצוע המרות אלו.

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

בסיס בינארי

ספירה על בסיס בינארי היא ספירה על בסיס 2, כלומר שהערכים היחידים שקיימים בה הם 0 ו-1,
כתוצאה מצירוף של 0 ו-1 נוכל להרכיב צירופים שונים בעלי 8 תווים אשר כל אחד מהם מייצג אות או מספר בשפת בני האדם.
כאשר אנו עוסקים בהמרות של מספרים בעלי בסיס עשרוני  לבינארי, עלינו להיעזר בסרגל בינארי.
הסרגל הבינארי מתחיל מ-1 ומתקדם בהכפלה (X*2), כלומר: 1-2-4-8-16-32-64-128-256-512-1024 וכו'
כאשר נבין כיצד מתבצעת המרה כזו (בהמשך המאמר), נבין גם מדוע אנו יכולים להסתפק בסרגל קצר (1-2-4-8 למשל) להמרת ערכים נמוכים יותר –
ההיגיון הוא שהערך הכי גבוה בסרגל יהיה נמוך מהערך שאנו הולכים להמיר,
כלומר שאם אנו הולכים להמיר את המספר 15, אז מקסימום 8 טוב לנו, כי 16 זה יותר גדול מ-15.

Hex2Bin

אם כך, נוכל להיעזר בטבלה על מנת להמיר הקסדצימלי לבינארי.
במקרה שלנו תספיק לנו טבלה בעלת 4 שורות בלבד עבור כל תו בערך ההקסדצימלי,
וזאת משום שאנו מדברים על ספירה על בסיס 16, כלומר שהסרגל 1-2-4-8 יספיק לנו על מנת להמיר לבינארי, אנו לא זקוקים ליותר מ-4 ספרות, כך או כך כל מה שיבוא מאחורי ערך זה יהיה אפסים,
המספר המקסימלי שלנו שהוא 15 (מיוצג על ידי F) יותר קטן מ-16,
כאשר ייצוג בינארי של כל תו כלשהו הוא 8 תווים (למשל – 000001111 הוא הייצוג הבינארי של F).

שימו לב לדוגמא הבאה שתבאר את הנושא:

נתון לנו הערך ההקסדצימלי 123A, ניעזר בטבלה על מנת להמירו לבינארי.

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

 

הקסדצימלי לבינארי - 1

הקסדצימלי לבינארי - 2

הקסדצימלי לבינארי - 3

הקסדצימלי לבינארי - A

אם כך, נרכיב את הערך הבינארי לפי סדר הטבלאות – 0001001000111010.

Hex2Bin Convertion
Hex2Bin Convertion

Bin2Hex

על מנת להמיר בינארי ל-Hex תספיק לנו טבלה בעלת 2 עמודות,
שגם היא בעלת 4 שורות כמובן (שורה עבור כל מיקום בסרגל הבינארי).
כאמור, כל ספרה הקסדצימלית מיוצגת על ידי ערך בינארי בעל 4 ספרות,
כלומר שאם ניקח את הערך המומר שלמעלה – 0001001000111010 נחלק אותו למקטעים של ארבע:

1010 0011 0010 0001

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

  • בעמודה הימנית נציב את הסרגל הבינארי (1-2-4-8).
  • בעמודה השמאלית כל תו מהערך הבינארי לפי הסדר

 

בכל טבלה כזו, נחבר את הערכים מהעמודה השמאלית שהייצוג הבינארי שלהם הוא 1.
שימו לב לדוגמא הבאה שתבאר את הנושא:

נתון לנו הערך הבינארי 1010 0011 0010 0001, ניעזר בטבלה על מנת להמירו ל-Hex.

בינארי להקסדצימלי - 0001


חיבור הערכים: 1
ייצוג הקסדצימלי: 1

בינארי להקסדצימלי - 0010


חיבור הערכים: 2
ייצוג הקסדצימלי: 2

בינארי להקסדצימלי - 0011


חיבור הערכים: 3 = 2 + 1
ייצוג הקסדצימלי: 3

בינארי להקסדצימלי - 1010


חיבור הערכים: 10 = 8 + 2
ייצוג הקסדצימלי: A
כך שהערך המומר הוא – 123A

Bin2Hex Convertion
Bin2Hex Convertion

קידוד מהנה!

אהבתכם את המדריך? פתר לכם תקלה? הזמינו את כותב המדריך לכוס קפה

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

ניתן לתרום 10, 15, 20 או כל סכום אחר שתרצו באמצעות כרטיס אשראי \ Paypal

רוצים לשתף את המדריך?

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

הזמינו אותי לכוס קפה
buy me coffee

אהבתכם את המדריך? פתר לכם תקלה? הזמינו את כותב המדריך לכוס קפה

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