[ create a new paste ] login | about

Link: http://codepad.org/Yxe9EcHk    [ raw code | output | fork ]

C, pasted on Nov 17:
#include <stdio.h>
int main(void) {
  struct kouzoutai {
    unsigned long int ldata;
    struct {
      unsigned short int idata1, idata2;
    };
  } s_data;
  union kyoyoutai {
    unsigned long int ldata;
    struct {
      unsigned short int idata1, idata2;
    };
  } u_data;
  unsigned long int data;
  unsigned short int d1 = 0x1234, d2 = 0x5678;

  puts("符号なし32ビット整数を入力して下さい."); scanf("%lu", &data);
  printf("入力値は16進表示で %08x です.%c", data,10);
  printf("2つの符号なし16ビット整数にそれぞれ 0x%04x, 0x%04x を代入する.%c", d1, d2,10);

  s_data.ldata = data; s_data.idata1 = d1; s_data.idata2 = d2;
  printf("符号なし32ビット整数の値は16進数表示で %08x です.%c", s_data.ldata,10);
  printf("符号なし16ビット整数の値は16進数表示で %04x です.%c", s_data.idata1,10);
  printf("符号なし16ビット整数の値は16進数表示で %04x です.%c", s_data.idata2,10);

  u_data.ldata = data; u_data.idata1 = d1; u_data.idata2 = d2;
  printf("符号なし32ビット整数の値は16進数表示で %08x です.%c", u_data.ldata,10);
  printf("符号なし16ビット整数の値は16進数表示で %04x です.%c", u_data.idata1,10);
  printf("符号なし16ビット整数の値は16進数表示で %04x です.%c", u_data.idata2,10);
  return 0;
} 


Output:
1
2
3
4
5
6
7
8
9
符号なし32ビット整数を入力して下さい.
入力値は16進表示で bfb90668 です.
2つの符号なし16ビット整数にそれぞれ 0x1234, 0x5678 を代入する.
符号なし32ビット整数の値は16進数表示で bfb90668 です.
符号なし16ビット整数の値は16進数表示で 1234 です.
符号なし16ビット整数の値は16進数表示で 5678 です.
符号なし32ビット整数の値は16進数表示で 56781234 です.
符号なし16ビット整数の値は16進数表示で 1234 です.
符号なし16ビット整数の値は16進数表示で 5678 です.


Create a new paste based on this one


Comments: