Lua中的波浪线(~)单独使用代表什么意思?

针对以下代码示例:

num_1 = 12 ~ 36

这个波浪线在这个示例中表示什么?这只是一种缩写方式来表示~=吗?

原文链接 https://stackoverflow.com/questions/69692032

点赞
stackoverflow用户107090
stackoverflow用户107090

Ëœ 是按位异或运算符。请参见参考手册 中的 按位运算符

2021-10-23 21:09:17
stackoverflow用户2858170
stackoverflow用户2858170

在 Lua 中,独立的波浪线没有意义。只有与其操作数结合才有意义。

Lua 中有三种使用波浪线 ~ 的情况。

关系运算符 ~= 表示不等于:如果 a 不等于 b,则 a ~= b 为真。

位运算符

  1. 二进制 ~ 位异或运算:a ~ b 解析为一个数字,其中每个位都是 ab 相应位的异或值。
  2. 一元 ~ 位非运算:~a 解析为一个数字,其中每个位都被反转。因此,0 变成 1,1 变成 0。

在你的情况下,num_1 = 12 ~ 36 中的 ~ 用作二元运算符,它是位异或运算。

100100  36
001100  12
------
101000  40

因此,num_1 = 12 ~ 3640 分配给 num_1

2021-10-24 08:17:57