JAVA中FC什么意思_java – 位掩码的规则是什么?像0xFF vs. 0xFC

我正在制作一个创建程序生成的地牢的游戏,我找到了一个使用位掩码来检索房间号和门类型等内容的例子.

在该示例中,他使用位掩码从每个图块的整数中提取细节.并且整数被这样分解

0xLLSDRRET

L - is the Level Number

S - Denotes a special tile(Like Stairs)

D - is if its a door,and what type(Door,Arch,Trapped)

R - Room number

E - Flags an entrance to a room

T - Names the type of tile(Floor,Cooridor,Blocked)

在这里,他使用一个位掩码来获取,例如,房间号码,如:

int[][] map = new int[40][40]

int $ROOM_ID = 0x0000FF00;

System.out.println(map[x][y] & $ROOM_ID);

现在有了这个,如果map [x] [y]是例如0x00001200,那么输出将是1200.这部分掩模我明白了.

但在源$ROOM_ID是ACTUALLY 0x0000FFC0,我不明白C做什么,因为我尝试了不同的值,我似乎无法抓住C做的,例如

0x00001200 output-> 1200

0x00001210 output-> 1200

0x00001220 output-> 1200

0x00001230 output-> 1200

0x00001240 output-> 1240

0x00001250 output-> 1240

0x00001260 output-> 1240

0x00001270 output-> 1240

0x00001280 output-> 1280

0x00001290 output-> 1280

0x000012A0 output-> 1280

0x000012B0 output-> 1280

0x000012C0 output-> 12C0

0x000012D0 output-> 12C0

0x000012E0 output-> 12C0

0x000012F0 output-> 12C0

有更多位掩码知识的人可以解释为什么0x0000FFC0& 0x000012F0 = 12C0?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值