• ベストアンサー

数値をuchar型に入れるには???

(1)int num = 255;  uchar c; ~~~  c = num;  printf("%x",c);  で表示すると0xFFが表示される? (2)int num = 256;  uchar c; ~~~  c = num;  printf("%x",c);  の場合もprintfで表示すると0x00が表示される? 上記の場合にuchar[2]の配列に、  uchar[1] = 0x01 uchar[0] = 0x00  と入れる場合にはどうすればよいでしょうか? 宜しく御願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • buriburi3
  • ベストアンサー率44% (353/792)
回答No.2

※方法1 uchar c[2] ; *(short *)c = 256 ; ※方法2 c[0] = num % 256 ; c[1] = num / 256 ; ※方法3 c[0] = num & 0xff ; c[1] = (num >> 8) & 0xff ; ※方法4 #1と同じ typedef union NUM_u { int n ; uchar c[sizeof(int)] ; } NUM_t ; ((NUM_t *)c)->n = 256 ;

その他の回答 (1)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

いろいろな方法があります。 以下は、ほんの一例です。 #include <stdio.h> typedef unsigned char uchar; typedef union { int n; uchar c[2]; } U; int main(void) { U u; u.n = 256; printf("%02x %02x\n", u.c[1], u.c[0]); return 0; }

関連するQ&A