2013-09-06 2 views
0

배열 변환 [8]을 설정하여 문자열 변환을 저장합니다. X의 범위는 0에서 255까지입니다. X가 127 (7 비트)보다 작 으면 더 높은 비트 0을 쓰지 않습니다. 따라서 배열 [0]을 모두 0으로 사전 설정하고 다음 루틴은 변경된 데이터만을 씁니다. 코드는 컴파일되지만 배열 []은 모두 x = to에 관계없이 1을 읽습니다.배열 사전 설정

int x = 10; 
string=(Integer.toBinaryString(x));       

int[] array = new int[8];          
for (int j=0; j < 7; j++){ 
    array[j]=0;  
} 

for (int i=0; i < string.length(); i++) { 
array[i] = Integer.parseInt(string.substring(i,i+1)); 
} 

Log.d("TAG", "Data " + array[0] + "" + array[1]+ "" + array[2] + 
     "" + array[3]+ "" + array[4]+ "" + array[5] + 
     "" + array[6] + "" + array[7]); 
+3

당신이 루프 처음 필요하지 않습니다를 ... INT-배열 내가 첫 번째 시도 기본 0 –

+0

가 있습니다 하지만 추락했습니다. X = 10 "1010"배열을 보느라 피곤했을 때 [4] 추락했습니다. 0이 될 것이라고 생각했습니다. – Bobby

+1

은이 "Data 10100000"의 출력입니까? 또는 "Data 11111111"? –

답변

2
int x = 10; 
    String s=(Integer.toBinaryString(x));    

    int[] array = new int[8]; 
    //no need for a loop that sets all values to 0. 

    int offset = array.length - s.length(); 
    //you need this offset because the string may be shorter than the array 

    for (int i=0; i < s.length(); i++) { 
     array[i + offset] = Integer.parseInt(s.substring(i,i+1)); 
     //applay the offset here 
    } 

int = 10에 대한 후속 배열 생성합니다 :

[0, 0, 0, 0, 1, 0, 1, 0]