2013-11-09 4 views
0

INT [] LETTERS = {0x69F99}16 진수

I가 1 진수 문자열, 예를 들어, 이진 1 16 진수를 매 16 진수로 변환 할

(6)

String hex = Integer.toHexString(LETTERS[0]); 
String binary = Integer.toBinaryString(hex.charAt(0)); 
System.out.println(binary); 

출력 : I 출력이 110이 될 것입니다이 Integer.toBinaryString (6)을 수행하지만 4 자리 무언가를 원하는 경우 110,110

, 그것은 가능하다?

답변

0

나는 좋아하는 라이브러리 또는 유틸리티 기능으로 적절하게 문자열을 채 웁니다. 구아바와

:

String binary = Strings.padStart(Integer.toBinaryString(hex.charAt(0)), 4, '0')); 

또 다른 옵션은 단순히 문자 버퍼를 채우고 OpenJDK implementation가 무엇을 본질적으로있는 문자열로 렌더링하는 것입니다 :

public static String intToBin(int num) { 
    char[] buf = new char[4]; 
    buf[0] = num & 0x1; 
    buf[1] = num & 0x2; 
    buf[2] = num & 0x4; 
    buf[3] = num & 0x8; 
    return new String(buf); 
} 
0

당신은 어떤 문자열이 없습니다 여기에 - 하나의 int 배열을 가진이 정수를 본질적으로 니블로 변환하려고하면 다음과 같이 할 수 있습니다.

int num = 0x12345678; 

String bin32 = String.format("%32s", Integer.toBinaryString(num)).replace(" ", "0"); 
System.out.printf("all 32bits=[%s]\n", bin32); 

for(int nibble = 0; nibble < 32; nibble += 4) 
{ 
    System.out.printf("nibble[%d]=[%s]\n", nibble, bin32.subSequence(nibble, nibble+4)); 
} 

주는 :

all 32bits=[00010010001101000101011001111000] 
nibble[0]=[0001] ie hex digit 1 as bin 
nibble[4]=[0010] ie hex digit 2 as bin 
nibble[8]=[0011] 
nibble[12]=[0100] 
nibble[16]=[0101] 
nibble[20]=[0110] 
nibble[24]=[0111] 
nibble[28]=[1000] ie hex digit 8 as bin