printf
'u kullanabileceğinizi ve değerleri HEX değerlerine dönüştürmek ve konsolda görüntülemek için StringBuilder.append(String.format("%x", byte))
'u kullanabileceğinizi biliyorum. Ama aslında bayt dizisini biçimlendirmek istiyorum, böylece her bayt ondalık yerine HEX olarak görüntülenir.Bayt dizisini Java'da onaltılık biçime dönüştürme
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;
oldu bayt dizisi bölündü dize: Burada
Zaten ben belirtti ilk iki yol yapar sahip benim kod bölümüdür"1E2021345A2B"
Ama konsolda ondalık olarak görüntüler:
"303233529043"
herkes için nasıl bana yardım eder misiniz gerçek değerleri onaltılık olarak al ve doğal olarak bu şekilde göster. Şimdiden teşekkür ederim.
Neden sadece Integer.parseInt (sb.ToString(), 16) demiyorlar deneyin: Yerine String.format kolaylık yöntemi kullanarak, doğrudan bir Biçimlendirici kullanılır? – Luke