2013-02-27 53 views
0

一串只要看看下部現在轉換位陣列值轉換成二進制數

伊夫方式爲十六進制轉換成二進制之前看到這裏,但我的問題是,是否有可能爲十六進制值轉換內部將一個字節數組轉換爲二進制值並將其放入一個大字符串!?

香港專業教育學院一直在努力至今的代碼是:

public static void main (String[] args){ 

    byte [] ex; 
    ex = new byte [] {(byte)0xFF, (byte)0x11, (byte)0xEE, (byte)0x22, (byte)0xDD, (byte)0x33, (byte)0xCC, (byte)0x44}; 
    printByteArray(ex); 

} 

public static void printByteArray(byte [] array) 


{ 
    System.out.print("[ "); 
    for(int i = 0; i < array.length; i++) 
    { 
     System.out.print(Integer.toHexString((array[i]>>4)&0x0F).toUpperCase()); 
     System.out.print(Integer.toHexString(array[i]&0x0F).toUpperCase() + " "); 
    } 
    System.out.println("]"); 
} 

我想是改變是能夠把整個二進制串入一個字節數組。像獲取每個十六進制數的二進制值,然後把它放在巨大的字節數組

任何幫助PLZ和謝謝!

EDITED

好以及IM與它不事關所有的東西,我想他們是多麼長的第一個會,他們仍然是正確的。但是現在你能幫我拿起並使用那根繩子。我有這樣的代碼:

** public static void main (String[] args){ 

    String binary; 
    byte [] ex; 
    ex = new byte [] {(byte)0xFF, (byte)0x11, (byte)0xEE, (byte)0x22, (byte)0xDD, (byte)0x33, (byte)0xCC, (byte)0x44}; 
    printByteArray(ex); 
    binary = hexToBin(ex); 
    System.out.println(binary); 

} 

public static String hexToBin(byte [] array) 
{ 
    String binStr = null; 
    for(int i = 0; i < array.length; i++){ 
     binStr.append(Integer.toBinaryString(array[i])); 
    } 
    return binStr; 
}** 

,但由於我的初始化字符串(起初)我的輸出中有無效的事實。任何想法如何解決這個問題?另外我只是改變它追加,現在idk爲什麼但不會讓我用它?

回答

1

會Integer.toBinaryString給你你想要的?

http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html#toBinaryString(int)

public static void printByteArray(byte [] array) 
{ 
    System.out.print("[ "); 
    for(int i = 0; i < array.length; i++) 
    { 
     System.out.print(Integer.toBinaryString(array[i])); 
    } 
    System.out.println("]"); 
} 
+0

接近,但你知道怎麼來的就不會有打印出來,就像我期待64 1或0,但有可能兩倍於每噸1的中 – erp 2013-02-28 00:15:08

0

試試這個(注意:byte是8位不是16,你似乎上述建議,這可能是混亂的一部分,爲16位,你會希望有一個short和32將int

public class PrintBytes { 

    public static void printByteArray(byte [] array) 

    { 
    System.out.print("[ "); 
    for (byte anArray : array) { 
     byte b = anArray; 
     for (int j = 0; j < 8; j++) { 
     System.out.print((b & 128) < 1 ? "0" : "1"); 
     b <<= 1; 
     } 
     System.out.print(" "); 
    } 
    System.out.println("]"); 
    } 

    public static void main(String[] args) { 
    printByteArray(new byte[] {64, 32, -1}); 
    } 
}