2015-12-04 44 views
1

的位置X的比特如果創建一個隨機byte[],例如:獲得途徑中的字節數組

byte[] b = new byte[16]; 
new Random().nextBytes(b); 

這意味着,我有16個字節或128位數據,是嗎?

有沒有辦法讀取位置X的位,以便我可以瞭解它是0還是1?

這個問題是相似的,但不相同,an existing question,要求如何得到一個字節。但我想要一個字節數組,byte[]

+3

重複的是一個字節,而不是字節數組。 – RealSkeptic

回答

4

這意味着我有16個字節或128位的數據,對吧?

對!

你可以得到一個位在你的字節數組是這樣的:

int readBit(byte[] b, int x) { 
    int i = x/8; 
    int j = x % 8; 
    return (b[i] >> j) & 1; 
} 
+0

簡單而優雅。謝謝。 – Aventinus

0

在java中,您不能直接訪問位。你需要使用按位運算符。

所以,你可以比較你已知的位值的字節。