Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
の一意の(...000010000...)バイナリマスクを反復処理する方法はlong long?私は次のようなマスクの上を意味しました0001, 0010, 0100, 1000
...000010000...
long long
0001, 0010, 0100, 1000
単一のビットが設定された各マスクを意味する場合:
for (unsigned long long mask = 1; mask != 0; mask <<= 1) { // Do something with mask }
unsignedシフトがオーバーフローしたときの動作を定義するには、 を使用する必要があることに注意してください。
unsigned
考えられるすべてのマスク値を意味しているわけではないと思います。それらすべてを反復するには非常に長い時間がかかります。