1時間ごとに更新!Amazon.co.jpで今売れている本トップ100   掲示板ランキング



掲示板利用宣言

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

 私は

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

掲示板1

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

No.5569

共用体での16進数の表示
投稿者---johan(2006/03/15 23:23:58)


共用体を使って、longの値を1byteごとにだしたいのですが、
たとえば「12345678」と入力したとき、3byteめにffffffと出力されてしまいます。これを直すにはどうすればいいかどなたか教えていただけませんか?
XP VC++

#include<stdio.h>
void main(void);

union DATA
{
    long a;
    char b[4];
};

void main(void){
    int i;
    union DATA data1;
    scanf("%ld",&data1.a);
    printf("0x%x\n",data1.a);
    for(i=0;i<4;i++){
        printf("%dbyte=0x%x\n",i+1,data1.b[i]);
    }
}




この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:共用体での16進数の表示 5570 Blue 2006/03/15 23:27:50


No.5570

Re:共用体での16進数の表示
投稿者---Blue(2006/03/15 23:27:50)


unsigned char b[4];

にするか、

printf("%dbyte=0x%x\n",i+1,(unsigned char)data1.b[i]);

としてみてはどうでしょうか?


この投稿にコメントする

削除パスワード

No.5571

Re:共用体での16進数の表示
投稿者---johan(2006/03/16 01:02:45)


>printf("%dbyte=0x%x\n",i+1,(unsigned char)data1.b[i]);
>
>としてみてはどうでしょうか?

やはり符号無しにするのが良いのでしょうか。ありがとうございました。
試してみます。


この投稿にコメントする

削除パスワード

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





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