2012-05-08 9 views
0

Appleのライブラリには、ビットの順序を短くする機能がありますか?事前に短い順番の逆順ビット

0000 0011 -> 1100 0000

感謝。使用

方法:

unsigned int NO_OF_BITS = sizeof(num) * 8; 
unsigned int reverse_num = 0; 
int i; 
for (i = 0; i < NO_OF_BITS; i++) 
{ 
    if((num & (1 << i))) 
     reverse_num |= 1 << ((NO_OF_BITS - 1) - i); 
} 

出典:http://www.geeksforgeeks.org/archives/726

+0

「フリップビット」とはどういう意味ですか?通常、これはすべての0を1に変更することを意味します(つまり0000 0011 - > 1111 1100)が、それはあなたの後ろにあるようには見えません – Sean

+0

私はマスキングのことについて話していません。 – JavaCake

+0

どちらかについて話す。多分あなたはビットの* order *を反転しようとしているようですね?のように、左から右へ? @Sean、正確に – Sean

答えて

3

あなたが与えるバイトのビット列を反転しようとしているように聞こえます。

これを効率的に行う方法はたくさんあります。見てくださいhttp://graphics.stanford.edu/~seander/bithacks.html#BitReverseObvious

このサイトには、ビットを扱う際の多くのトリックが含まれています。