「プログラミング/ビット位置導出」の編集履歴(バックアップ)一覧はこちら
「プログラミング/ビット位置導出」(2015/08/28 (金) 22:15:36) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
#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 );
}