设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2261|回复: 2
打印 上一主题 下一主题

[已经过期] 看不懂Ruby的符号

[复制链接]

Lv3.寻梦者

梦石
0
星屑
4169
在线时间
258 小时
注册时间
2013-10-13
帖子
815
跳转到指定楼层
1
发表于 2019-8-28 16:59:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
  在MAP类中,
bit = (1 << (d / 2 - 1)) & 0x0f
符号<<和 &到底是什么意思?0x0f又是什么意思?

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
10074
在线时间
5020 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

2
发表于 2019-8-28 17:47:16 | 只看该作者
本帖最后由 VIPArcher 于 2019-8-28 18:05 编辑

这里的 << 和 & 都是二进制的位运算
<< 表示左移
3 << 2 可以看成是
把3转换为二进制数字 0000 0011 然后全体向左移动2位 变成 0000 1100 转回十进制就是 12
这么说可能有点懵,没关系换成公式让你秒懂,换成公式来算的话就是(公式为: n << m = n * (2 ^ m))
3 << 2的值为3 * (2^2) = 12
& 表示 按位与
把数字转成2进制,每一位比较,都为1的位才是1,否则是0,这么说你可能有点懵,没关系换成例子让你秒懂
举个例子就是
42 & 233 即为
00101001 & 11100101
可以这样
00101010    # 42
11101001    # 233
-----------------
00101000    # 40

0x0f 是十六进制的记法
对应十进制15
对应二进制00001111

脚本里的bit = (1 << (d / 2 - 1)) & 0x0f 其实就是取朝向的位
当朝向为
2 的时候上式计算得到 0000 0001
4 的时候上式计算得到 0000 0010
6 的时候上式计算得到 0000 0100
8 的时候上式计算得到 0000 1000

点评

谢谢,明白点  发表于 2019-8-29 12:27
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-13 12:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表