农夫过河问题(一个小细节)

农夫过河问题判断农夫和被移动物体是否在同侧的语句是if((0!=(location&0x08)==(0!=(loctation&movers[i])))location是... 农夫过河问题判断农夫和被移动物体是否在同侧的语句是if((0!=(location&0x08)==(0!=(loctation&movers[i])))
location是当前位置用四位二进制数表示,第一位是农夫,movers是四种移动方式:1000,1010,1001,1100 。
如果农夫的位置是1那么和哪一个mover做“&”运算结果都不等于零,上面的判断语句都成立,可是这其中一定是有农夫和被移动物体不在同侧的情况的,那这个语句就有问题了。
可是看了好几本书都是这么写的,应该不是程序写错了,求问我哪里想错了呢?
求指教O(∩_∩)O谢谢
展开
 我来答
yy_神_xx
2013-06-27 · TA获得超过680个赞
知道小有建树答主
回答量:599
采纳率:0%
帮助的人:383万
展开全部
如果location是1的话,只有和1001&才为真,其他都为假,因为其他数的个位都是0
追问
先谢过了~
可是……我可能说的不清楚,我说的农夫位置是1,是指location最高位是1,比如说1000,1010,
1011等等。这样和movers求“&”就总是不等于零,那么那个语句就总是为真了,但是里面一定有不符合条件的情况,比如location是1110时,mover中只有1010符合农夫和要移动的物品在同一侧。我不知道我哪里理解错了,求指教……
追答
照你这样说是有问题的。movers的最高位的1应该去掉
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式