我不完全了解按位操作,但我不明白的是为什么〜运算符不只是将其设为负数。
因为那不是它的工作方式。十进制数存储在ruby中的方式是使0几乎类似于第一个正数。例如,8位将存储从-128到127的数字,并且第一位是“标志”符号。它会反转所有bits,使其变为-3。