2013-02-14 57 views
-1

我有一個ADC,輸出一個12位的值,每位用真或假表示。我怎樣才能將其轉換爲int?如何將兩個6位二進制值合併爲一個12位二進制值並將其轉換爲int?

例如:

12位值是111111000001個

//getLevel returns true or false 
boolean bit0 = getLevel(channel0);//true 
boolean bit1 = getLevel(channel1);//true 
boolean bit2 = getLevel(channel2);//true 
boolean bit3 = getLevel(channel3);//true 
boolean bit4 = getLevel(channel4);//true 
boolean bit5 = getLevel(channel5);//true 
boolean bit6 = getLevel(channel6);//false 
boolean bit7 = getLevel(channel7);//false 
boolean bit8 = getLevel(channel8);//false 
boolean bit9 = getLevel(channel9);//false 
boolean bit10 = getLevel(channe10);//false 
boolean bit11 = getLevel(channe11);//true 


///do something to convert bit0 - bit11 to an int == 4033 

任何想法如何去了解呢?

回答

1

將位存儲在BitSet中。

BitSet bits = new BitSet(); 
//set the bit fields... 

//convert bitset to integer 
int bitInteger = 0; 
for(int i = 0 ; i < bits.length(); i++) { 
    if(bits.get(i)) { 
     bitInteger |= (1 << i); //logical OR each bit into the integer and shift left 
    } 
} 
+0

謝謝,那就是我一直在尋找的!我會投票,但我沒有足夠的代表。 – user2041469 2013-02-14 18:54:37

相關問題