ビットマスクを水平にフリップする簡単な方法はありますか? それは行う必要があり、次のよりエレガントな方法はあり水平方向にビットマスクを反転する
uint16 flipUint16Horizontally(uint16 bitmask)
{
uint16 flippedMask = 0;
for(unsigned int bit = 0; bit < 16; ++bit)
{
uint16 currentBit = (bitmask & (1 << bit)) >> bit;
flippedMask |= currentBit << (15 - bit);
}
return flippedMask;
}
:
0b1010101111001101 -> 0b1011001111010101
まっすぐソリューションは、それは少しのビットやっているのでしょうか?
エレガントな定義。 – 2501
@ 2501:愚かな方法ではない;-) – m47h
いくつかのアプローチがあります。しかし、そのアイデアのどれも「ワンライナー」と呼ばれることはありません。 – Codor