2013-05-24 4 views
0

16 진수로 변환하려면이 코드를 사용했지만 8 비트로만 작동합니다. 어떻게 16 비트로 확장 할 수 있습니까? 예를 들어 FFFF를 1111111111111111로 변환하고 싶습니다. 제로 0 ...안드로이드에서 16 진수를 2 진수로 변환

void HexToBinary1(String Hex) { 

    int i = Integer.parseInt(Hex, 16);//16 bits 
    String Bin = Integer.toBinaryString(i);//Converts int to binary 

    String Bin2=""; 
    if(Bin.length()==8){Bin2=Bin;} 
    if(Bin.length()==7){Bin2="0"+Bin;} 
    if(Bin.length()==6){Bin2="00"+Bin;} 
    if(Bin.length()==5){Bin2="000"+Bin;} 
    if(Bin.length()==4){Bin2="0000"+Bin;} 
    if(Bin.length()==3){Bin2="00000"+Bin;} 
    if(Bin.length()==2){Bin2="000000"+Bin;} 
    if(Bin.length()==1){Bin2="0000000"+Bin;} 

    text1.setText(Bin2);//Shows binary 
} 

답변

1

사용

String HexToBinary(String Hex) { 
     String bin = new BigInteger(Hex, 16).toString(2); 
     int inb = Integer.parseInt(bin); 
     bin = String.format(Locale.getDefault(),"%08d", inb); 
     return bin; 
} 

그것은 8 자리 형식으로 바이너리 문자열을 반환합니다.

+0

Integer.toBinaryString을 필요로하는 경우 내 코드를 변환하려면 어떻게해야합니까? – user2342687

+0

@ user2342687 내 편집 된 답변을 확인하십시오 – stinepike

+0

좋은 ... 작동하지만 작은 0005하지만 ffff에 대한 나는 오류가 – user2342687

1

는이처럼 INT 16 진수에 있음을 자바를 알려줄 필요가 :

String HexToBinary(String Hex) { 
    int i = Integer.parseInt(Hex, 16); 
    String Bin = Integer.toBinaryString(i); 
    return Bin; 
} 
0

public static String getBits(double value) 
{ 
    //get bit-string of double 
    String printString = (Long.toBinaryString(Double.doubleToRawLongBits(value))); 

    //add leading zeros if bitstring is shorter than 64 bits 
    while (printString.length() < 64) 
     printString = "0" + printString; 

    //format string by adding byte padding 
    StringBuilder bitwise = new StringBuilder(); 
    for(int i = 0; i<8; i++) 
     bitwise.append(printString.substring(i*8, (i+1)*8)+" "); 

    return bitwise.toString(); 
} 

더의 int에 대한 적응과 구문 분석의 기능에 추가 부담 시도 16 진수 문자열.