Advertisement
Guest User

Untitled

a guest
Jun 30th, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.67 KB | None | 0 0
  1. /* Napisati funkciju unsigned int f1(unsigned int x, unsigned int k) koja u datom broju invertuje
  2. svako k-to pojavljivanje jedinice. Bitovi broja se ˇcitaju sa desna na levo. Sa standardnog ulaza se unosi ceo pozitivan
  3. broj x i k. Ispisati rezultat funkcije na standardni izlaz. */
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7.  
  8. unsigned int f1(unsigned int x, unsigned int k)
  9. {
  10.     unsigned maska = 1; int i;
  11.     int br_j=0;
  12.  
  13.     for (i=0; i<(sizeof(unsigned)*8-1); i++)
  14.     {
  15.         if (x & maska)
  16.             br_j++;
  17.         if (br_j == k)
  18.             x = x ^ maska;
  19.         maska <<= 1;
  20.     }
  21.  
  22.     return x;
  23. }
  24.  
  25. int main()
  26. {
  27.     unsigned x, k;
  28.     scanf("%u%u", &x, &k);
  29.  
  30.     printf("%u\n", f1(x,k));
  31.  
  32.     return 0;
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement