如何重置ulong中的单个位?
How to reset single bit in ulong?
我有ulong
个号码。我需要能够快速设置和重置单个位。例如:
15 是 1111。通过设置第 5 位,我将得到 47,所以 101111
我想出了如何设置位:
ulong a = 15;
a |= 1 << 5; // so, now a=47
但我正在努力如何将它重置回 0。我正在尝试:
a &= ~(1 << 5);
它不起作用,因为我不能在 ulong
变量上使用 &
运算符。
有什么解决方法?我需要这个操作尽可能快。
I can't use & operator on ulong
variable.
那是因为 1
已签名。使用 U
后缀使其无符号可解决问题:
a &= ~(1U << 5);
我有ulong
个号码。我需要能够快速设置和重置单个位。例如:
15 是 1111。通过设置第 5 位,我将得到 47,所以 101111
我想出了如何设置位:
ulong a = 15;
a |= 1 << 5; // so, now a=47
但我正在努力如何将它重置回 0。我正在尝试:
a &= ~(1 << 5);
它不起作用,因为我不能在 ulong
变量上使用 &
运算符。
有什么解决方法?我需要这个操作尽可能快。
I can't use & operator on
ulong
variable.
那是因为 1
已签名。使用 U
后缀使其无符号可解决问题:
a &= ~(1U << 5);