Advertisement
poczatkujacykoder

Untitled

Oct 27th, 2014
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.43 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. void div_2half(bool *whole, int n_elements , bool *half1, bool *half2);
  5. void p10(bool * xaxa);
  6. typedef struct BIT
  7. {
  8.     bool bit[8];
  9.     void zamiana(unsigned char c)
  10.     {
  11.         bit[0] = (c >> 7) % 2;
  12.         bit[1] = (c >> 6) % 2;
  13.         bit[2] = (c >> 5) % 2;
  14.         bit[3] = (c >> 4) % 2;
  15.         bit[4] = (c >> 3) % 2;
  16.         bit[5] = (c >> 2) % 2;
  17.         bit[6] = (c >> 1) % 2;
  18.         bit[7] = c % 2;
  19.     }
  20.  
  21.  
  22. }text;
  23. int main()
  24. {  
  25.     text  a;
  26.     bool half_k1[5];
  27.     bool half_k2[5];
  28.     bool bitk[10];
  29.     unsigned char tekst;
  30.     bool key[10];
  31.  
  32.     int i;
  33.    
  34.     key[0] = 1;
  35.     key[1] = 1;
  36.     key[2] = 0;
  37.     key[3] = 0;
  38.     key[4] = 0;
  39.     key[5] = 0;
  40.     key[6] = 0;
  41.     key[7] = 0;
  42.     key[8] = 1;
  43.     key[9] = 1;
  44.    
  45.    
  46.     /*for ( i = 0; i < 10; ++i)
  47.         key[i] = bitk[i] == '1' ? 1 : 0;
  48.         */
  49.  
  50.    
  51.     printf("klucz to :");
  52.         for (i = 0; i < 10; i++)
  53.         {
  54.             printf("%d ", key[i]);
  55.  
  56.         }
  57.         for (i = 0; i < 10; i++)
  58.         key[i] <<= 2;
  59.  
  60.  
  61.         printf("po pzesunieciu :");
  62.         for (i = 0; i < 10; i++)
  63.         {
  64.             printf("%d ", key[i]);
  65.  
  66.         }
  67.  
  68.     p10(key);
  69.    
  70.     printf("\nklucz po opuszczeniu  funkcji p10:\n");
  71.     for (i = 0; i < 10; i++)
  72.     printf("%d ",key[i]);
  73.  
  74.     printf("\n");
  75.  
  76.     div_2half(key, 10, half_k1, half_k2);
  77.    
  78.     printf("pierwsza czesc klucza:\n");
  79.     for (i = 0; i < 5; i++)
  80.         printf("%d ", half_k1[i]);
  81.     printf("\n");
  82.  
  83.     printf("druga czesc klucza:\n");
  84.     for (i = 0; i < 5; i++)
  85.         printf("%d ", half_k2[i]);
  86.    
  87.     scanf("%c", &tekst);
  88.     a.zamiana(tekst);
  89.     for (i = 0; i < 8; i++)
  90.         printf("%c\n", a.bit[i]);
  91.  
  92.  
  93.     system("pause");
  94.     return 0;
  95. }
  96. void p10(bool *xaxa){
  97.     int a;
  98.  
  99.     bool *copy;
  100.  
  101.     copy = ((bool*)malloc(10 * sizeof(bool)));
  102.  
  103.        
  104.  
  105.     for (a = 0; a < 10; a++)
  106.         copy[a] = xaxa[a];
  107.  
  108.    
  109.     /*for (a = 0; a < 10; a++)
  110.         printf("%d ", copy[a]);
  111.         */
  112.         xaxa[0] = copy[2];
  113.         xaxa[1] = copy[4];
  114.         xaxa[2] = copy[1];
  115.         xaxa[3] = copy[6];
  116.         xaxa[4] = copy[3];
  117.         xaxa[5] = copy[9];
  118.         xaxa[6] = copy[0];
  119.         xaxa[7] = copy[8];
  120.         xaxa[8] = copy[7];
  121.         xaxa[9] = copy[5];
  122.         free(copy);
  123. }
  124. void div_2half(bool *whole, int el, bool *half1, bool *half2){
  125.     int c;
  126.     int i;
  127.     //printf("\nwhole a:\n");
  128.  
  129.     /*for (i = 0; i < el; i++)
  130.         printf("%d ",whole[i]);
  131.     printf("\n");
  132.     */
  133.     for (i = 0; i < el/2 ; i++)
  134.     half1[i] = whole[i];
  135.  
  136.  
  137. /*  for (i = 0; i < el / 2; i++)
  138.         printf("%d ",half1[i]);
  139. */
  140.     c = el/2;
  141.     for (i = 0; i < el/2; i++)
  142.     {
  143.         half2[i] = whole[c];
  144.         c++;
  145.     }
  146. /*  printf("\n");
  147.     for(i = 0; i < el / 2; i++)
  148.         printf("%d ", half2[i]);*/
  149.    
  150.    
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement