首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >理解代码有困难,特别是&

理解代码有困难,特别是&
EN

Stack Overflow用户
提问于 2012-09-18 16:30:35
回答 7查看 92关注 0票数 0

我正在读一篇关于Java pacman游戏的教程。

下面是有问题的代码。

代码语言:javascript
复制
   if (pacmanx % blocksize == 0 && pacmany % blocksize == 0) {
        pos = // integer         
        ch = screendata[pos];

        if ((ch & 16) != 0) { // do not understand this.
            screendata[pos] = (short)(ch & 15);
            ...
        }

我不是真的理解单音&。我知道这个操作数检查if语句的两边,或者是一个按位运算符。然而,根据下面的测试,似乎也不是这样:

代码语言:javascript
复制
if I was to test (ch = 18):
(ch & 16) = 16
(ch & 8) = 0
(ch & 2) = 2

谢谢

EN

Stack Overflow用户

发布于 2012-09-18 16:34:51

这不是一个布尔and,它总是&&;相反,它是一个按位and。它正在检查是否在ch中设置了右起第五位。

代码语言:javascript
复制
ch = 18  //      ch = 0b00010100
ch & 16  //      16 = 0b00010000
         // ch & 16 = 0b00010000 != 0
ch & 8   //       8 = 0b00001000
         // ch &  8 = 0b00000000 == 0
ch & 2   //       2 = 0b00000010
         // ch &  2 = 0b00000010 != 0
票数 2
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12473131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档