可能重複:
Converting decimal to binary in Java如何以二進制形式顯示按位運算的結果?
我發現這個代碼,作爲輸入的數x
,陣列p
和另一個號碼pmax
指示數組的大小p
public static int permute(int x, int p[], int pmax) {
int y = 0;
for (int i = 0; i < p.length; ++i) {
y <<= 1;
y |= (x >> (pmax - p[i])) & 1;
}
return y;
}
這段代碼應該是p根據陣列在例如定義p
這樣的規則ermutating存儲在數x
的第一字節的比特如果x
第一PMAX位是101
和陣列P如下: p={2 1 3}
那麼這個函數(y
)的結果將等於011
問題
我從來沒有WO用位運算符排序,我希望看到上面代碼的所有中間結果。例如,y<<=1
做了什麼以及爲什麼使用它。要做到這一點,我需要以二進制形式顯示y
變量,否則我只是得到一些隨機小數,這對我無法理解任何東西。
那麼如何在每次按位運算後顯示二進制格式的結果呢?
如果這不是一個很好的方法來確切地知道這段代碼做什麼,你會建議什麼方法?
我寧願把這個問題作爲一個簡單的重複,而不是授予西方最快的槍和他的代表每個10 XP。 –
@JanDvorak鏈接副本與編寫一個手工方法相關,該方法將數字轉換爲生成二進制字符串。我甚至投了這個問題來封閉,但這並不意味着我不能在這段時間內花費10秒的時間來回答。如果它將被關閉,那麼它將會發生。 – Jack