赞 | 90 |
VIP | 350 |
好人卡 | 311 |
积分 | 101 |
经验 | 150139 |
最后登录 | 2024-7-17 |
在线时间 | 5020 小时 |
Lv4.逐梦者 (版主) 无限の剣制
- 梦石
- 0
- 星屑
- 10074
- 在线时间
- 5020 小时
- 注册时间
- 2013-2-28
- 帖子
- 5030
|
本帖最后由 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 |
|