unsigned int data01 = 12345;//符号なしで宣言
ビットをカウントする
上のとおりに上のデータでビットをカウントさせたいです。
実行例
data=12345
16進数表記 = 3039[h]
2進数表記 = 0011 0000 0011 1001[b]
1のビットの合計は六個です
このように作りたいです。誰か教えてください
失礼しました補足です。私の考えでは
const int bin[] = {
0, 1, 10, 11,
100, 101, 110, 111,
1000, 1001, 1010, 1011,
1100, 1101, 1110, 1111,
};
int n = data01;
int a = data01;
printf("data= %d\n", a);
printf("16進数表記=%4x[h]\n2進数表記=%04d %04d %04d %04d[b]\n", n,
bin[n >> 12 & 0xf], bin[n >> 8 & 0xf], bin[n >> 4 & 0xf], bin[n & 0xf]);
printf("\n");
int count;
count=6;
printf("1ビットの合計は%d個です\n", count);
のようになりましたが、カウントがデータが入っていないため、違うデータをカウントするときに数が変わりません。合計6のところは
0011 0000 0011 1001
2進数の1の数を数えたのがそうらしいです。どうすれば、カウントできるようになるか教えてくれませんか
回答4件
あなたの回答
tips
プレビュー