gpt4 book ai didi

C# 左移运算符

转载 作者:太空狗 更新时间:2023-10-30 00:05:15 27 4
gpt4 key购买 nike

我的一位同事写了一篇我不完全理解的声明。不幸的是,他现在不在,所以就在这里(修改后的名称,我们正在 Unity 中开发游戏)。

private readonly int FRUIT_LAYERS =
(1 << LayerMask.NameToLayer("Apple"))
| (1 << LayerMask.NameToLayer("Banana"));

NameToLayer 接受一个字符串并返回一个整数。我一直看到左移运算符在右侧而不是左侧与常量整数一起使用,我通过 Google 找到的所有示例都遵循这种方法。在这种情况下,我认为他将 Apple 和 Banana 推到相同的相关层(稍后我将使用它进行过滤)。将来会有更多的“水果”可供筛选。任何聪明的 stackoverflowers 可以给我解释这些线路上发生的事情吗?

最佳答案

1 << x本质上是在说“给我一个数字,其中第 (x+1) 位为 1,其余数字均为零。

x | y是按位或,所以它将遍历从 1 到 n 的每一位,如果该位是 x 中的一个或 y那么该位将在结果中为 1,否则将为零。

所以如果LayerMask.NameToLayer("Apple")返回 2LayerMask.NameToLayer("Banana")返回 3然后FRUIT_LAYERS将是设置了第 3 位和第 4 位的数字,即 1100二进制,或以 10 为基数的 12。

关于C# 左移运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15839593/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com