读书人

位运算!初学者求教

发布时间: 2013-04-20 19:43:01 作者: rapoo

位运算!菜鸟求教!
假设只有一个4位2进制控制4个LED灯,
我只传一个参数sig给open(receive_sig),那么怎么写才能开启灯啊?
比如原本是0101(代表“四开、三关、二开、一关”),我传入sig = 3给open(sig),怎么变成0001啊?

希望:位运算,最好是通用算法。

菜鸟求教。

自己想了很久没思路!!!
[解决办法]
open 里面的实现有问题?
有open的代码吗?
如果open是别人写的接口, 就是楼主理解有误.
[解决办法]
最好能把open 代码贴出来看下
[解决办法]

x &= ~(1<<(sig-1)) //x为原来的状态

[解决办法]
3楼正解
想把哪位数置为0 就与一个只有当前位为0其余位全为1的数按位与

[解决办法]
搜一下“位域”,应该能帮到你。
[解决办法]
建议设置开关灯的mask

读书人网 >C语言

热点推荐