簡體   English   中英

生成位掩碼

[英]Generate Bitmask

給定兩個整數; sizeoffset ,我將如何生成具有以下屬性的位掩碼;

MSD             LSD
1111 1111 0000 1111
          ^  ^
size = 4 -|  |
             |  
offset = 4  -|

編輯; 這似乎可行(詢問后找到解決方案)

((1 << size) - 1) << offset;

由於該問題被標記為c ++,因此我將提供一個基於STL的解決方案:

bitset<NUM_BITS> bs(0);
bs = ((bs.flip() << size).flip() << offset).flip();

相同的代碼分為幾行:

bitset<NUM_BITS> bs(0);
bs.flip();
bs <<= size;
bs.flip();
bs <<= offset;
bs.flip();

性能方面的考慮取決於讀者。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM