Advertisement
bitwise_gamgee

Untitled

May 31st, 2023
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.01 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. void print_binary(unsigned int number) {
  4.     for(int i = 7; i >= 0; --i) {
  5.         putchar('0' + ((number >> i) & 1));
  6.         if(i % 4 == 0 && i != 0)
  7.             putchar(' ');
  8.     }
  9.     putchar('\n');
  10. }
  11.  
  12. int main() {
  13.     unsigned int num = 64; // 0100 0000
  14.     int pos = 3;
  15.     int n = 2;
  16.  
  17.     printf("Initial number: ");
  18.     print_binary(num);
  19.  
  20.     printf("\n---- Mask 1 ----\n");
  21.     unsigned int mask1 = (1 << n) - 1;
  22.     printf("(1 << n) - 1: ");
  23.     print_binary(mask1);
  24.     mask1 <<= pos;
  25.     printf("<< pos: ");
  26.     print_binary(mask1);
  27.    
  28.     unsigned int result1 = num | mask1;
  29.     printf("Result 1: ");
  30.     print_binary(result1);
  31.  
  32.     printf("\n---- Mask 2 ----\n");
  33.     unsigned int mask2 = (1 << n) - 1;
  34.     printf("(1 << n) - 1: ");
  35.     print_binary(mask2);
  36.     mask2 <<= (pos - n + 1);
  37.     printf("<< (pos - n + 1): ");
  38.     print_binary(mask2);
  39.  
  40.     unsigned int result2 = num | mask2;
  41.     printf("Result 2: ");
  42.     print_binary(result2);
  43.  
  44.     return 0;
  45. }
  46.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement