プログラミング > ビット位置導出

#include <stdio.h>

int bitpos(int);

int main(void) {

 int n =    0x00000001;
 int i = 0;
 for(i=0;i<32;++i) {
   printf("n%d %d\n", i, bitpos(n<<i));
 }
 return 0;

}

int bitpos(int n) {

 int m = 0;
 m|="\0\x10"[!!(n&0xFFFF0000)];
 m|="\0\x8"[!!(n&0xFF00FF00)];
 m|="\0\x4"[!!(n&0xF0F0F0F0)];
 m|="\0\x2"[!!(n&0xCCCCCCCC)];
 m|="\0\x1"[!!(n&0xAAAAAAAA)];
 return( m );

}

最終更新:2015年08月28日 22:15
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。