2013-12-17 69 views

回答

3

你可以這樣說:

uint16 res = 0; 
for (int i = 0 ; i != 16 ; i++) { 
    if (bits[i]) { 
     res |= (uint16)(1 << i); 
    } 
} 

該算法將檢查至少16位顯著一個接一個,並使用按位或操作來設定結果的對應位。

+0

RES | =(1 <<我);無法將整數(i)轉換爲UInt16(res)? – user2922938

+0

@ user2922938糟糕,我忘了添加一個演員。這應該在編輯之後起作用。 – dasblinkenlight

+0

PLZ我是初學者在C#你能解釋更多,什麼是(演員)? – user2922938

0

您可以遍歷它並組成值本身。

var bits = new BitArray(16); 
bits[1] = true; 
var value = 0; 

for (int i = 0; i < bits.Length; i++) 
{ 
    if (lBits[i]) 
    { 
     value |= (1 << i); 
    } 
} 
相關問題