home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 17 / CD_ASCQ_17_101194.iso / dos / prg / alb_c10 / chap_13 / ch13_07.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-09-08  |  1018 b   |  42 lines

  1. /*********************************************************************
  2. *  CH13_07.C          OpΘrations de masquage dans des champs binaires  *
  3. *********************************************************************/
  4.  
  5. #include<stdio.h>
  6.  
  7. typedef struct {
  8.            unsigned  a: 8,
  9.                  b: 4,
  10.                  c: 3;
  11.            } champ_bin;
  12.  
  13. typedef union  {
  14.            champ_bin cb;
  15.            double dble;
  16.            } champ_U;
  17.  
  18. main( void)
  19. {
  20.     champ_bin cb0= { 85, 4};
  21.     champ_U ucb;
  22.     ucb.cb= cb0;
  23.  
  24.    /* 1. masquage d'un champ.                         */
  25.     printf(" cb0.a= %d", cb0.a);
  26.     cb0.a &= 0xf;   /* ou cb0.a= cb0.a & 0xf;             */
  27.     printf("\n cb0.a= %d", cb0.a);
  28.  
  29.    /* 2. masquage sur un champ binaire membre d'une union.         */
  30.     printf("\n\n ucb.cb.a= %d , ucb.cb.b= %d , ucb.cb.c= %d",
  31.           ucb.cb.a, ucb.cb.b, ucb.cb.c);
  32.  
  33.     ucb.cb.a &=0xf;
  34.     printf("\n ucb.cb.a= %d", ucb.cb.a);
  35. }
  36. /*
  37.  cb0.a= 85
  38.  cb0.a= 5
  39.  
  40.  ucb.cb.a= 85 , ucb.cb.b= 4 , ucb.cb.c= 0
  41.  ucb.cb.a= 5                                                        */
  42.