※ 引述《caxz ( )》之铭言:
: 问两个我面试时预到的C问题
: [问题一]
: unsign long v1 = 0x 00001111
: unsign long v2 = 0x 00001202
: unsign long v
: v= v1&(~v2)
: v= v|v2
: 请问这种位元运算有什么方法教有效率的算法?
不是很确定你想要表达的意思,不过 v = v1 &(~v2)
v = v | v2
这两行是不是可以化简成一行 v = (v1 & (~v2)) | v2
然后把这个真值表写出来,可以得到
v1 v2 ∣(v1 & (~v2)) | v2
───┼─────────
0 0 │ 0
0 1 │ 1
1 0 │ 1
1 1 │ 1
看起来等价于 v1 | v2
所以 v = (v1 & (~v2)) | v2 这一行,应该是可以化简成 v = v1 | v2
: 我只会笨笨的转换成二进制作运算再转回16进位
: [问题二]
: Rewrite *((*papf)[3])(char *) as typedef _______
: 完全看不懂再问什么?
: 感谢各位赐教啦
你确定你题目对吗?根本不合法,无法作答