我一直在閱讀Kernighan和Ritchie的「The C Programming Language」。解釋包含按位運算符的C語句的工具
我發現它很難通過部分得到2.9位運算符
具體做法是:
練習2-6編寫一個函數setbits(X,P,N,Y),其回報x,其中 n位開始於位置p設置爲y的最右邊的n位, 保持其他位不變。
有一個聰明的叫做理查德希思菲爾德的小夥子練習here的答案。
理查德的回答是:
return (x & ((~0 << (p + 1))
| (~(~0 << (p + 1 - n)))))
| ((y & ~(~0 << n)) << (p + 1 - n));
問題
有誰知道一個工具,將解釋的代碼行類似上面的?
我希望存在類似於各種在線正則表達式解釋器,但對於按位操作。
像堆棧溢出的人的工具嗎? ;) – Shahbaz 2012-03-28 15:31:44
鉛筆和紙張? – 2012-03-28 15:32:18
我不認爲有一種工具可以解析位運算符表達式並向您解釋。您很可能必須閱讀每位運營商以瞭解代碼背後的含義。請查看以下鏈接http://www.cprogramming.com/tutorial/bitwise_operators.html,並一次性完成各部分內容,並嘗試用簡單的英語(或您選擇的語言)向自己解釋,以確保您瞭解 – 2012-03-28 15:33:41