Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <ctype.h>
- #include <stdlib.h>
- #include <string.h>
- // in x: n bits start with position p are equals n right bits from y
- int setbits(int x, int p, int n, int y)
- {
- unsigned int temp = ~(0);
- temp <<= n;
- for(int i = 0; i < p - n + 1; i++)
- {
- temp <<= 1;
- temp |= 1;
- }
- return (x & temp) | (((~((~0) << n)) & y) << (p - n + 1));
- }
- int main(void)
- {
- int p, n, x, y;
- x = 2679;
- y = 1473;
- p = 4;
- n = 3;
- printf("setbits p = %i, n = %i\n", p, n);
- printf("%i\n%i\n%i\n", x, y, setbits(x, p, n, y));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement