((x)|=(0x01<<(y))) 作用
这样得到的是什么值?有什么用呢,不就直接是x吗?亲们。。。你们没懂我的意思,我是说我每个操作符都懂,但是这样的算法在我看到的帖子叫“//置位x的y位”,可是你们随便带进去...
这样得到的是什么值?有什么用呢,不就直接是x吗?
亲们。。。你们没懂我的意思,我是说我每个操作符都懂,但是这样的算法在我看到的帖子叫“
//置位x的y位”,可是你们随便带进去数值算啊,跟1移位或运算有什么意义呢,结果还不是x。
还有,系统管理员干什么呢就乱推荐答案,不是害人呢么,这是把1左移y位,不是把y左移1位,管理员知都不知道在那乱推荐什么。别误导百度的学子们 展开
亲们。。。你们没懂我的意思,我是说我每个操作符都懂,但是这样的算法在我看到的帖子叫“
//置位x的y位”,可是你们随便带进去数值算啊,跟1移位或运算有什么意义呢,结果还不是x。
还有,系统管理员干什么呢就乱推荐答案,不是害人呢么,这是把1左移y位,不是把y左移1位,管理员知都不知道在那乱推荐什么。别误导百度的学子们 展开
4个回答
展开全部
((x)|=(0x01<<(y)))
将y左移一位,
然后用X与这个结果相与
再把最后结果给X
希望可以帮到你
将y左移一位,
然后用X与这个结果相与
再把最后结果给X
希望可以帮到你
追问
看我的追问
追答
你说的没错,我写错了,
不过x与位移后的结果相与不可能还是x的
如果x原来是1,Y原来是3
运行后结果X应该为9,自然不是1了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先将十六进制的01 “左移” y位
然后将结果和x的二进制形式做 “或” 运算
再将运算的结果赋值给x.
建议看看C语言中的 位 运算符。希望对你有帮助。
不懂你的追问,((x)|=(0x01<<(y))) 的运算结果怎么还是x。举例下吧:x,y初值分别为1和2,
((x)|=(0x01<<2))=0100 x= 0001 | 0100 = 0101.
然后将结果和x的二进制形式做 “或” 运算
再将运算的结果赋值给x.
建议看看C语言中的 位 运算符。希望对你有帮助。
不懂你的追问,((x)|=(0x01<<(y))) 的运算结果怎么还是x。举例下吧:x,y初值分别为1和2,
((x)|=(0x01<<2))=0100 x= 0001 | 0100 = 0101.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先把十六进制的01位运算移位,然后和X进行或运算,然后将其值赋给X
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询