我一直在阅读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