Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
oorrja
GitHub Repository: oorrja/learntosolveit
Path: blob/master/languages/cprogs/Ex_2.7_invert.c
1240 views
1
/**
2
*
3
* Exercise 2.7
4
*
5
* Write a function invert(x,p,n) that returns x with n bit starting at p
6
* inverted .
7
*
8
**/
9
10
#include<stdio.h>
11
12
unsigned invert(unsigned x,int p,int n);
13
14
int main(void)
15
{
16
printf("%u", (unsigned) invert((unsigned) 8, (int) 3, (int) 3));
17
}
18
19
unsigned invert(unsigned x, int p, int n)
20
{
21
return x ^ (~(~0 << n) << (p + 1 - n));
22
}
23
24
25