icatalin

19.10 lab 2 prob

Oct 19th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.09 KB | None | 0 0
  1. //19.10 lab 3
  2. void prob1()
  3. {
  4.     // se da un x. sa se verif daca x se scrie ca 2 la o putere si sa se afis puterea
  5.  
  6.     int x,a,k=0;
  7.     scanf("%d",&x);
  8.  
  9.     a=x-1;
  10.  
  11.     if ((x & a) == 0)
  12.         printf("Este putere a lui 2.");
  13.     else
  14.         printf("Nu este putere a lui 2.");
  15.  
  16.     while (x>>=1)
  17.         k++;
  18.  
  19.     printf("\n puterea este... %d",k);
  20. }
  21.  
  22. void prob2()
  23. {
  24.     // cati biti de 1 are numarul
  25.    
  26.     int x,c=0;
  27.     scanf("%d",&x);
  28.  
  29.     while (x)
  30.     {
  31.         if ((x&1)==1)
  32.             c++;
  33.  
  34.         x>>=1;
  35.     }
  36.  
  37.     printf("%d",c);
  38. }
  39.  
  40. void problema3Lab3()
  41. {
  42.     int x,y,n,p; // p - pozitia p din x; n - ultimii n biti din y
  43.  
  44.     printf("Introduceti valorea pentru x si y, in ordine. Apoi introduceti si p - pozitia din x si n - ultimii biti din y. \n");
  45.     printf("\nx si y \n");
  46.     scanf("%d %d", &x,&y);
  47.     printf("\np si n \n");
  48.     scanf("%d %d", &p, &n);
  49.  
  50.     int div=pow(2,n);
  51.     int nBits=y%div;
  52.  
  53.     nBits = nBits << p;
  54.  
  55.     x = x + nBits; // GRESIT, trebuiau setati nu copiati!
  56.  
  57.     printf("Valorea noului x este... %d", x);
  58.  
  59. }
Add Comment
Please, Sign In to add comment