Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- void print_binary(unsigned int number) {
- for(int i = 7; i >= 0; --i) {
- putchar('0' + ((number >> i) & 1));
- if(i % 4 == 0 && i != 0)
- putchar(' ');
- }
- putchar('\n');
- }
- int main() {
- unsigned int num = 64; // 0100 0000
- int pos = 3;
- int n = 2;
- unsigned int expected_result = 92; // 0101 1100
- printf("Initial number: ");
- print_binary(num);
- printf("\nExpected result: ");
- print_binary(expected_result);
- printf("\n---- Mask 1 ----\n");
- unsigned int mask1 = (1 << n) - 1;
- printf("(1 << n) - 1: ");
- print_binary(mask1);
- mask1 <<= pos;
- printf("<< pos: ");
- print_binary(mask1);
- unsigned int result1 = num | mask1;
- printf("Result 1: ");
- print_binary(result1);
- printf("\n---- Mask 2 ----\n");
- unsigned int mask2 = (1 << n) - 1;
- printf("(1 << n) - 1: ");
- print_binary(mask2);
- mask2 <<= (pos - n + 1);
- printf("<< (pos - n + 1): ");
- print_binary(mask2);
- unsigned int result2 = num | mask2;
- printf("Result 2: ");
- print_binary(result2);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement