1. بايت إلى عشري
استخدم تحويل النوع (int) مباشرة.
/** byte to decimal*/ static int byte2int (byte b) {int r = (int) b ؛ العودة ص. }2. عشري للبايت
استخدم مباشرة (بايت) تحويل النوع.
/** decimal to byte*/ public static byte int2byte (int i) {byte r = (byte) i ؛ العودة ص. }3. صفيف بايت إلى سلسلة سداسي عشري
لكل بايت ، قم أولاً بعمل نفس العملية مع 0xFF ، ثم استخدم وظيفة integer.tohexstring (). إذا كانت النتيجة فقط بت 1 بت ، فأنت بحاجة إلى إضافة 0 في المقدمة.
/** صفيف البايت إلى سلسلة hex*/ سلسلة ثابتة عامة bytes2HexString (byte [] b) {string r = "" ؛ لـ (int i = 0 ؛ i <b.length ؛ i ++) {string hex = integer.toHexString (b [i] & 0xff) ؛ if (hex.length () == 1) {hex = '0' + hex ؛ } r += Hex.ToupperCase () ؛ } return r ؛ }4. سلسلة سداسية عشرية إلى صفيف البايت
هذا أكثر تعقيدًا. كل حرف سداسي عشري هو 4 أجزاء وبايت واحد هو 8 بت ، لذلك يتم تحويل شخصين سداسي عشري إلى 1 بايت. بالنسبة للحرف الأول ، قم بتحويله إلى بايت ثم قم بتحويله تركه 4 بت ، ثم قم بالقيام أو العمل مع بايت الحرف الثاني ، بحيث يتم تحويل الحرفين إلى بايت واحد.
/** يتم تحويل الأحرف إلى Byte*/ Private Static Byte Chartobyte (char c) {return (byte) "0123456789ABCDEF" .indexof (c) ؛ } /** hex string to byte array* / public static byte [] HexString2Bytes (String hex) {if ((hex == null) || (hex.equals (""))) {return null ؛ } آخر إذا (hex.length () ٪ 2! = 0) {return null ؛ } آخر {hex = hex.toupperCase () ؛ int len = hex.length ()/2 ؛ Byte [] b = new byte [len] ؛ char [] hc = hex.tochararray () ؛ لـ (int i = 0 ؛ i <len ؛ i ++) {int p = 2*i ؛ b [i] = (byte) (chartobyte (hc [p]) << 4 | chartobyte (hc [p+1])) ؛ } العودة ب ؛ }}5. لتحويل صفيف بايت إلى سلسلة
استخدم سلسلة جديدة () مباشرة.
/** صفيف البايت إلى سلسلة*/ السلسلة الثابتة العامة bytes2string (byte [] b) يرمي الاستثناء {String r = new string (b ، "utf-8") ؛ العودة ص. }6. سلسلة إلى صفيف البايت
استخدم getBytes () مباشرة.
/** string to byte array*/ public static byte [] string2bytes (string s) {byte [] r = s.getBytes () ؛ العودة ص. }7. سلسلة سداسية عشرية للسلسلة
تحويل إلى بايت [] أولاً ، ثم قم بتحويلها إلى سلسلة.
/** HexString إلى String*/ public Static String Hex2String (String hex) يلقي الاستثناء {String r = bytes2String (HexString2Bytes (hex)) ؛ العودة ص. }8. سلسلة إلى سلسلة سداسية عشرية
تحويل إلى Byte [] أولاً ، ثم قم بتحويلها إلى سلسلة سداسية عشرية.
/** سلسلة إلى سلسلة hexadecimal*/ Static String String2HexString (سلسلة S) استثناء {string r = bytes2HexString (String2Bytes (s)) ؛ العودة ص. }الوظيفة الرئيسية:
stative static void main (string [] args) يرمي الاستثناء {byte b1 = (byte) 45 ؛ system.out.println ("1. byte to decimal:" + byte2int (b1)) ؛ int i = 89 ؛ System.out.println ("2.1 to byte to byte:" + int2byte (i)) ؛ byte [] b2 = new byte [] {(byte) 0xff ، (byte) 0x5f ، (byte) 0x6 ، (byte) 0x5a} ؛ system.out.println ("3. byte array to hexadecimal string:" + bytes2HexString (b2)) ؛ السلسلة S1 = سلسلة جديدة ("1DA47C") ؛ System.out.println ("4.16 ٪ سلسلة إلى صفيف البايت:" + صفائف. system.out.println ("5. byte array to string:" + bytes2string (b2)) ؛ System.out.println ("6. String to Byte Array:" + Arrays.ToString (String2Bytes (S1))) ؛ System.out.println ("7.16 ٪ سلسلة إلى السلسلة:" + Hex2String (S1)) ؛ السلسلة S2 = سلسلة جديدة ("Hello!") ؛ System.out.println ("8. String to hexadecimal String:" + String2HexString (S2)) ؛ }نتائج التشغيل:
1. بايت إلى عشري: 452.1 عشري إلى البايت: 893. صفيف بايت إلى سلسلة سداسية: FF5F065A4. سلسلة سداسية عشرية إلى صفيف البايت: [29 ، -92 ، 124] 5. صفيف البايت إلى سلسلة:؟ _ Z6. سلسلة إلى صفيف البايت: [49 ، 68 ، 65 ، 52 ، 55 ، 67] 7. سلسلة سداسية عشرية إلى سلسلة:؟ | 8. سلسلة إلى سلسلة سداسي عشرية: 48656C6F21
يناقش المقال أعلاه باختصار التحويل المتبادل بين العشرية ، العشرية ، السداسية والسلاسل هو كل المحتوى الذي أشاركه معك. آمل أن يعطيك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.