मुझे पता है कि आप printf
का उपयोग करें और यह भी StringBuilder.append(String.format("%x", byte))
का उपयोग कंसोल पर हेक्स मूल्यों के मूल्यों को बदलने और उन्हें प्रदर्शित करने के लिए कर सकते हैं में हेक्स प्रारूप करने के लिए बाइट सरणी परिवर्तित करने के लिए। लेकिन मैं वास्तव में बाइट सरणी को प्रारूपित करने में सक्षम होना चाहता हूं ताकि प्रत्येक बाइट दशमलव के बजाय हेक्स के रूप में प्रदर्शित हो।कैसे जावा
if(bytes > 0)
{
byteArray = new byte[bytes]; // Set up array to receive these values.
for(int i=0; i<bytes; i++)
{
byteString = hexSubString(hexString, offSet, CHARSPERBYTE, false); // Isolate digits for a single byte.
Log.d("HEXSTRING", byteString);
if(byteString.length() > 0)
{
byteArray[i] = (byte)Integer.parseInt(byteString, 16); // Parse value into binary data array.
}
else
{
System.out.println("String is empty!");
}
offSet += CHARSPERBYTE; // Set up for next word hex.
}
StringBuilder sb = new StringBuilder();
for(byte b : byteArray)
{
sb.append(String.format("%x", b));
}
byte subSystem = byteArray[0];
byte highLevel = byteArray[1];
byte lowLevel = byteArray[2];
System.out.println("Byte array size: " + byteArray.length);
System.out.printf("Byte 1: " + "%x", subSystem);
System.out.printf("Byte 2: " + "%x", highLevel);
System.out.println("Byte 3: " + lowLevel);
System.out.println("Byte array value: " + Arrays.toString(byteArray));
System.out.println("Byte array values as HEX: " + sb.toString());
}
else
{
byteArray = new byte[0]; // No hex data.
//throw new HexException();
}
return byteArray;
स्ट्रिंग कि बाइट सरणी में विभाजित किया गया था:
यहाँ मैं पहले से ही है कि पहले दो तरीके है कि मैं कहा करता है कि मेरे कोड का एक वर्ग है
"1E2021345A2B"
लेकिन जैसे कंसोल पर दशमलव के रूप में यह प्रदर्शित करता है:
"303233529043"
किसी को भी कृपया मुझे पर कैसे करने के लिए मदद कर सकते हैं वास्तविक मान हेक्स में होने के लिए प्राप्त करें और स्वाभाविक रूप से उस तरह प्रदर्शित किया जाए। पहले ही, आपका बहुत धन्यवाद।
आप क्यों नहीं बस Integer.parseInt (sb.toString(), 16) कॉल नहीं करते प्रयास करें? – Luke