Advertisement
Boris_P

NFA037 - Jalon #3 - opLog()

Oct 23rd, 2018
347
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.44 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. unsigned char opLog(unsigned char y, unsigned char z) {
  4.     // CALCUL
  5.     unsigned char a = y;
  6.     unsigned char b = z;
  7.  
  8.         // ET
  9.     unsigned char c = a & b;
  10.  
  11.         // OU
  12.     unsigned char d = a | b;
  13.  
  14.         // OU exc
  15.     unsigned char e = a ^ b;
  16.  
  17.         // Complément à 1
  18.     unsigned char f = ~a;
  19.     unsigned char g = ~b;
  20.  
  21.         // Décalage à gauche
  22.     unsigned char h = a << 3;
  23.  
  24.         // Décalage à droite
  25.     unsigned char j = b >> 4;
  26.  
  27.     // AFFICHAGE
  28.     printf("a -> hexa : %x \t\t decimal : %d \t\t binaire : ", a, a);
  29.     bin(a);
  30.     printf("\n");
  31.  
  32.     printf("b -> hexa : %x \t\t decimal : %d \t\t binaire : ", b, b);
  33.     bin(b);
  34.     printf("\n");
  35.  
  36.     printf("c -> hexa : %x \t\t decimal : %d \t\t binaire : ", c, c);
  37.     bin(c);
  38.     printf("\n");
  39.    
  40.     printf("d -> hexa : %x \t\t decimal : %d \t\t binaire : ", d, d);
  41.     bin(d);
  42.     printf("\n");
  43.  
  44.     printf("e -> hexa : %x \t\t decimal : %d \t\t binaire : ", e, e);
  45.     bin(e);
  46.     printf("\n");
  47.  
  48.     printf("f -> hexa : %x \t\t decimal : %d \t\t binaire : ", f, f);
  49.     bin(f);
  50.     printf("\n");
  51.  
  52.     printf("g -> hexa : %x \t\t decimal : %d \t\t binaire : ", g, g);
  53.     bin(g);
  54.     printf("\n");
  55.  
  56.     printf("h -> hexa : %x \t\t decimal : %d \t\t binaire : ", h, h);
  57.     bin(h);
  58.     printf("\n");
  59.  
  60.     printf("j -> hexa : %x \t\t decimal : %d \t\t binaire : ", j, j);
  61.     bin(j);
  62.     printf("\n");
  63.  
  64.     // VERIFICATION
  65.     printf("\nVérification de c a la main \n");
  66.     unsigned char bit = 0;
  67.     unsigned char masque = 128;
  68.     unsigned char i = 7;
  69.     bit = (c & masque);
  70.     bit = bit >> i;
  71.     printf("%d", bit);
  72.     masque = masque >> 1;
  73.  
  74.     i = 6;
  75.     bit = (c & masque);
  76.     bit = bit >> i;
  77.     printf("%d", bit);
  78.     masque = masque >> 1;
  79.  
  80.     i = 5;
  81.     bit = (c & masque);
  82.     bit = bit >> i;
  83.     printf("%d", bit);
  84.     masque = masque >> 1;
  85.  
  86.     i = 4;
  87.     bit = (c & masque);
  88.     bit = bit >> i;
  89.     printf("%d", bit);
  90.     masque = masque >> 1;
  91.  
  92.     i = 3;
  93.     bit = (c & masque);
  94.     bit = bit >> i;
  95.     printf("%d", bit);
  96.     masque = masque >> 1;
  97.  
  98.     i = 2;
  99.     bit = (c & masque);
  100.     bit = bit >> i;
  101.     printf("%d", bit);
  102.     masque = masque >> 1;
  103.  
  104.     i = 1;
  105.     bit = (c & masque);
  106.     bit = bit >> i;
  107.     printf("%d", bit);
  108.     masque = masque >> 1;
  109.  
  110.     i = 0;
  111.     bit = (c & masque);
  112.     bit = bit >> i;
  113.     printf("%d", bit);
  114.     masque = masque >> 1;
  115.  
  116.     printf("\n\n");
  117.  
  118.     system("pause");
  119. }
  120.  
  121. int bin(char c) {
  122.     unsigned char bit = 0;
  123.     unsigned char masque = 128;
  124.     unsigned char i = 7;
  125.     for (int i = 7; i >= 0; i--) {
  126.         bit = (c & masque);
  127.         bit = bit >> i;
  128.         printf("%d", bit);
  129.         masque = masque >> 1;
  130.     }
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement