早教吧 育儿知识 作业答案 考试题库 百科 知识分享

农夫过河问题(一个小细节)农夫过河问题判断农夫和被移动物体是否在同侧的语句是if((0!=(location&0x08)==(0!=(loctation&movers[i])))location是当前位置用四位二进制数表示,第一位是农夫,movers是四种

题目详情
农夫过河问题(一个小细节)
农夫过河问题判断农夫和被移动物体是否在同侧的语句是if((0!=(location&0x08)==(0!=(loctation&movers[i])))
location是当前位置用四位二进制数表示,第一位是农夫,movers是四种移动方式:1000,1010,1001,1100 .
如果农夫的位置是1那么和哪一个mover做“&”运算结果都不等于零,上面的判断语句都成立,可是这其中一定是有农夫和被移动物体不在同侧的情况的,那这个语句就有问题了.
可是看了好几本书都是这么写的,应该不是程序写错了,求问我哪里想错了呢?
▼优质解答
答案和解析
如果location是1的话,只有和1001&才为真,其他都为假,因为其他数的个位都是0