c# - 小于 0-255 时按位二进制溢出,例如0-32?

标签 c# performance optimization bit-manipulation

我使用无符号字节的 0-255 二进制溢出/环绕,因为这可以节省无限环绕游戏世界中的某些边界检查(条件分支)。

有没有一种方法,使用位运算符来包装任意 2 的幂值,例如2^5 = 32?

这将无条件发生,因此,如果值 >= 32,我们会像往常一样换行,如果它 < 32,则值将保持不变。

最佳答案

是的,您可以只使用掩码和值。所以如果你想要你的值模 32 你可以这样做

x = x & 31;

这会将值限制为最低有效 5 位。 (换句话说,这适用于所有 2 的幂的环绕)

关于c# - 小于 0-255 时按位二进制溢出,例如0-32?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68955447/

相关文章:

c# - 将字典值列表连接到 IEnumerable

python - 在 for 循环中使用 tf.concat 添加值是否很慢?

python - 基于另一个数据集过滤一个数据集

c++ - 基于数值(正、负、零)实现条件表达式的最佳方式

c# - XML 文件交易

java - C# 相当于 Java 的 Character.digit

c# - 如何防止 DirectoryOperationException - 服务器无法处理目录请求

java - 这是对单例的适当使用吗?

c++ - 优化稀疏下三角线性系统的反向求解

javascript - 我该如何更有效地提供基于文本的网页?