掲示板ランキング  東洋ハーブ(秋ウコン(秋うこん))  東洋ハーブ(クスリウコン)


掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板1

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.6374

unsigned型のビット数を返却するプログラム例の内容がわかりません。
投稿者---zyakatu(2006/08/30 09:54:28)


/*--- unsigned型のビット数を返却 ---*/
int int_bits(void)
{
    int	 count  = 0;
    unsigned  x = ~0U; ・・・・

    while (x) {
        if (x & 1U) count++; ・・・・
        x >>= 1;
    }
    return (count);
}


上記プログラムの,痢x = ~0U」の部分と△痢x & 1U」の部分がわかりません。どなたかご教示下されば幸いです。宜しくお願いいたします。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:unsigned型のビット数を返却するプログラム例の内容がわかりません。 6375 nano 2006/08/30 10:15:59


No.6375

Re:unsigned型のビット数を返却するプログラム例の内容がわかりません。
投稿者---nano(2006/08/30 10:15:59)


>    unsigned  x = ~0U; ・・・・

~演算子は、ビットごとの反転を行ないます。
0についてそういう操作を行なうと、すべてのビットが立っている
(1である)状態となります。
int型の大きさが4バイト(32ビット)であれば、xは、32ビットすべてが
立っている状態です。
>        if (x & 1U) count++; ・・・・

1Uは、最下位ビットだけが立っている状態です。
xと1UとのビットごとのANDを取り、真であればcountをインクリメントします。

参考までに、xの初期状態の中身と1Uの中身をビットごとに表わしておきます。
途中の空白は、バイトごとの区切りです。見やすくするために入れてあります。
x :11111111 11111111 11111111 11111111
1U:00000000 00000000 00000000 00000001



この投稿にコメントする

削除パスワード

No.6376

Re:unsigned型のビット数を返却するプログラム例の内容がわかりません。
投稿者---nano(2006/08/30 10:20:22)


>xと1UとのビットごとのANDを取り、真であればcountをインクリメントします。

「真であれば」よりは「非ゼロならば」の方が
正確かもしれません。


この投稿にコメントする

削除パスワード

No.6377

Re:unsigned型のビット数を返却するプログラム例の内容がわかりません。
投稿者---zyakatu(2006/08/31 10:45:40)


おかげさまで、理解致しました。ありがとうございました。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧





掲示板提供:(有)リアル・インテグリティ