我有一个ulong
数字。我需要能够快速设置和重置单个位。例如:
15是1111。通过设置第5位,我会得到47,因此为101111
我已经想出如何设置一位:
ulong a = 15;
a |= 1 << 5; // so, now a=47
但我不知道如何将它重置为0。我尝试了:
a &= ~(1 << 5);
这样做是行不通的,因为我无法在ulong
变量上使用&
运算符。
有什么替代方案?我需要尽可能快地进行此操作。
我有一个ulong
数字。我需要能够快速设置和重置单个位。例如:
15是1111。通过设置第5位,我会得到47,因此为101111
我已经想出如何设置一位:
ulong a = 15;
a |= 1 << 5; // so, now a=47
但我不知道如何将它重置为0。我尝试了:
a &= ~(1 << 5);
这样做是行不通的,因为我无法在ulong
变量上使用&
运算符。
有什么替代方案?我需要尽可能快地进行此操作。
Operator '& =' cannot be applied to operands of type 'ulong' and 'int'
与@RoyDictus在提出的重复项中提出的答案几乎相同,可能太多了。 - TnTinMn