3

我有ulong号码。我需要能够快速设置和重置单个位。例如:

151111。通过设置第 5 位我会得到47,所以101111

我想出了如何设置:

ulong a = 15;
a |= 1 << 5; // so, now a=47

但我正在努力如何将其重置回 0。我正在尝试:

a &= ~(1 << 5);

它不起作用,因为我不能在变量上使用&运算符。ulong

解决方法是什么?我需要这个操作尽可能快。

4

1 回答 1

4

我不能在ulong变量上使用 & 运算符。

那是因为1签了。U使用后缀使其无符号可解决问题:

a &= ~(1U << 5);

演示。

于 2017-05-01T18:41:58.483 回答