这段代码中的“&”号是什么意思?

int clothes = (random.nextInt(0x1000000) & 0x7f7f7f);

最佳答案

它是bitwise AND运算符。

它在每个位上独立运行;如果位置n的两个相应输入位也均为1,则位置n的输出位仅为1。

在这种情况下,0x7f7f7f用作bit-mask。通过将某些位位置设为0,这意味着clothes中的相应位位置将始终为0。所有其他位位置将采用与random.nextInt(0x1000000)产生的值相同的值。

10-04 09:55