המרת Hex ל- ASCII בג'אווה

1. סקירה כללית

במאמר מהיר זה, אנו הולכים לבצע המרות פשוטות בין פורמטים Hex ו- ASCII.

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

2. ASCII ל- Hex

עכשיו, בואו נסתכל על האפשרויות שלנו להמיר ערכי ASCII ל- Hex:

  1. המרת מערך למחרוזת char
  2. מטילים כל אחד לְהַשְׁחִיר ל int
  3. להשתמש Integer.toHexString () להמיר אותו ל- Hex

הנה דוגמה מהירה כיצד נוכל להשיג את השלבים לעיל:

מחרוזת סטטית פרטית asciiToHex (מחרוזת asciiStr) {char [] chars = asciiStr.toCharArray (); StringBuilder hex = StringBuilder חדש (); עבור (char ch: chars) {hex.append (Integer.toHexString ((int) ch)); } להחזיר hex.toString (); }

3. פורמט Hex ל- ASCII

באופן דומה, בואו נעשה המרה בפורמט Hex ל- ASCII בשלושה שלבים:

  1. חתכו את ערך ה- Hex ל- 2 לְהַשְׁחִיר קבוצות
  2. המירו אותו לבסיס 16 שלם באמצעות Integer.parseInt (hex, 16) וליהק ל לְהַשְׁחִיר
  3. הוסף את כל התווים בא StringBuilder

בואו נסתכל על דוגמה כיצד נוכל להשיג את השלבים לעיל:

מחרוזת סטטית פרטית hexToAscii (מחרוזת hexStr) {פלט StringBuilder = StringBuilder חדש (""); עבור (int i = 0; i <hexStr.length (); i + = 2) {String str = hexStr.substring (i, i + 2); output.append ((char) Integer.parseInt (str, 16)); } להחזיר output.toString (); }

4. מבחן

לבסוף, בשיטות אלה, בואו לעשות בדיקה מהירה:

@Test סטטי ציבורי בטל כאשרHexToAscii () {String asciiString = "www.baeldung.com"; מחרוזת hexEquivalent = "7777772e6261656c64756e672e636f6d"; assertEquals (asciiString, hexToAscii (hexEquivalent)); } @Test סטטי ציבורי בטל כאשר AsciiToHex () {מחרוזת asciiString = "www.baeldung.com"; מחרוזת hexEquivalent = "7777772e6261656c64756e672e636f6d"; assertEquals (hexEquivalent, asciiToHex (asciiString)); }

5. מסקנה

לסיום, בדקנו את הדרכים הפשוטות ביותר להמרה בין ASCII ל- Hex באמצעות Java.

ניתן למצוא את היישום של כל הדוגמאות וקטעי הקוד בפרויקט github - פשוט ייבא את הפרויקט והפעל כפי שהוא.


$config[zx-auto] not found$config[zx-overlay] not found