タグ

16進数に関するbananapenguinのブックマーク (2)

  • double型の値をchar配列に変換する方法はありますか?

    定数1.0を直接変換する方法は無いので、変数に入れてから「それがchar配列だと騙す」しかない。 例1. union _t { double d; char c_a[1]; /*先頭要素のアドレスさえ取得できれば良いので要素は1個で良い*/ } data; int i; char *p; data.d = 1.0; p=data.c_a; for (i = 0;i < sizeof(double);i++) printf("0x%2.2x ",*p++); putchar('\n'); 例2. double d = 1.0; char *p; p = (char *)&d; for (i = 0;i < sizeof(double);i++) printf("0x%2.2x ",*p++); putchar('\n');

    double型の値をchar配列に変換する方法はありますか?
  • printf による16進表示について

    C言語初心者です。 今作っているプログラムで、データを16進形式で表示しようとしています。 大体このような感じです。 /*入力時*/ char buf[5]={0x4e,0x94,0xa0,0x2b,0x78} /*出力時*/ for (i = 0; i < 5; i++) { printf("0x%02x\n",buf[i]) } 実際には入力後にある処理によってbufは更新されるのですが、printfの出力結果として、 0xffffff4e 0x94 0xffffffa0 0x2b 0x78 というように、'ffffff'が付加したものがいくつか出力されてしまいます。 これはどういった意味を持つのでしょうか? なんか初心者ならではの漠然とした質問ですいません。。。

    printf による16進表示について
  • 1