掲示板ランキング  トートバッグ・レッスンバッグ  ショルダーバッグ  ランドセル  シューズバッグ


掲示板利用宣言

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

 私は

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

掲示板1

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

No.6968

ビット変換
投稿者---tama(2006/12/23 18:10:35)


1回目のshow(ch);で

100の2進数を表示してますが、

t1<<=4;   /** t1=16000 **/
t2>>=4;   /** t2=6 **/
ch=t1|t2;




ch=t1 | t2;  /* ch=16000 | 6 */

この部分で何をやってるんでしょうか?
教えてください。




#include<stdio.h>

void show (unsigned u);
int main(void)
{
    unsigned char ch,t1,t2;
    ch=100;
    show(ch);
    
    t1=ch;
    t2=ch;
    t1<<=4;
    t2>>=4;

    ch=t1 | t2;
    show(ch);
return 0;
}


void show (unsigned u)
{
    unsigned n;
    
    for(n=128;n>0;n=n/2)
        if(u & n)printf("1 ");
        else printf("0 ");
        
        printf("\n");
}



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:ビット変換 6969 σ 2006/12/23 19:19:08


No.6969

Re:ビット変換
投稿者---σ(2006/12/23 19:19:08)


t1はunsigned 「char」型なので、
100を4ビット左へシフトすると桁あふれします。
16000にはなりません。

この点を考慮して、そのコードでは
どういうことをしているか、考えてみてください。



この投稿にコメントする

削除パスワード

No.6971

Re:ビット変換
投稿者---tama(2006/12/24 10:04:34)


回答どうもありがとうございます。
解り易くおしえていただきどうもありがとうございます。


この投稿にコメントする

削除パスワード

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





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