English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا البرنامج، ستعلم كيفية تحويل مصفوفة البايتات إلى تسلسلي عشرية في Java بطرق مختلفة.
public class ByteHex { public static void main(String[] args) { byte[] bytes = {10, 2, 15, 11}; for (byte b : bytes) { String st = String.format("%02X", b); System.out.print(st); {} {} {}
عند تشغيل البرنامج، الناتج يكون:
0A020F0B
في البرنامج المذكور أعلاه، لدينا مصفوفة بايتات تسمى bytes. لتحويل مصفوفة البايتات إلى قيمة تسلسلية عشرية، نمرر عبر كل بايت في المصفوفة ونستخدم format() من String.
نستخدم %02X لطباعة قيمة عشرية (X) في موقفين (02) ونسجلها في السلسلة st.
لتحويل مصفوفات البايتات الكبيرة، هذا عملية بطيئة نسبيًا. يمكننا استخدام عملية البايت الموضحة أدناه لزيادة السرعة بشكل كبير.
public class ByteHex { private final static char[] hexArray = "0123456789ABCDEF".toCharArray(); public static String bytesToHex(byte[] bytes) { char[] hexChars = new char[bytes.length * 2]; for (int j = 0; j < bytes.length; j++) { int v = bytes[j] & 0xFF; hexChars[j * 2] = hexArray[v >>> 4]; hexChars[j * 2 + 1] = hexArray[v & 0x0F]; {} return new String(hexChars); {} public static void main(String[] args) { byte[] bytes = {10, 2, 15, 11}; String s = bytesToHex(bytes); System.out.println(s); {} {}
الناتج للبرنامج هو نفسه في مثال 1.