((x)|=(0x01<<(y))) 作用

这样得到的是什么值?有什么用呢,不就直接是x吗?亲们。。。你们没懂我的意思,我是说我每个操作符都懂,但是这样的算法在我看到的帖子叫“//置位x的y位”,可是你们随便带进去... 这样得到的是什么值?有什么用呢,不就直接是x吗?
亲们。。。你们没懂我的意思,我是说我每个操作符都懂,但是这样的算法在我看到的帖子叫“
//置位x的y位”,可是你们随便带进去数值算啊,跟1移位或运算有什么意义呢,结果还不是x。

还有,系统管理员干什么呢就乱推荐答案,不是害人呢么,这是把1左移y位,不是把y左移1位,管理员知都不知道在那乱推荐什么。别误导百度的学子们
展开
 我来答
wuchenyong119
2012-08-02 · TA获得超过265个赞
知道小有建树答主
回答量:194
采纳率:0%
帮助的人:169万
展开全部
是x=x|(0x01<<(y)),就是0x01与x或后的值赋给 x

就是0x01再左移y位呀,再与x或呀
追问
看我追问
追答
比如x|=0x01<<5;
就是0x01(00000001)移位得0x20(00100000)
再或上x得到的就是把x的第6位置1了,
所以最后的结果不会是最出的x,置x的y+1位,就是把x的第y+1位置1

还具体点就是x|=0x01(00000001)<<5,就是把x的第y+1位置1了,原来x的第y+1位可能不是1
derek_chen2012
2012-08-02 · TA获得超过465个赞
知道小有建树答主
回答量:284
采纳率:0%
帮助的人:106万
展开全部
((x)|=(0x01<<(y)))

将y左移一位,
然后用X与这个结果相与
再把最后结果给X

希望可以帮到你
追问
看我的追问
追答
你说的没错,我写错了,
不过x与位移后的结果相与不可能还是x的
如果x原来是1,Y原来是3
运行后结果X应该为9,自然不是1了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2e16d69
2012-08-02
知道答主
回答量:78
采纳率:0%
帮助的人:27.8万
展开全部
首先将十六进制的01 “左移” y位
然后将结果和x的二进制形式做 “或” 运算
再将运算的结果赋值给x.
建议看看C语言中的 位 运算符。希望对你有帮助。

不懂你的追问,((x)|=(0x01<<(y))) 的运算结果怎么还是x。举例下吧:x,y初值分别为1和2,
((x)|=(0x01<<2))=0100 x= 0001 | 0100 = 0101.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lzn_world
2012-08-02 · TA获得超过701个赞
知道小有建树答主
回答量:375
采纳率:0%
帮助的人:350万
展开全部
先把十六进制的01位运算移位,然后和X进行或运算,然后将其值赋给X
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式