[英]Generate Bitmask
給定兩個整數; size
和offset
,我將如何生成具有以下屬性的位掩碼;
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.