#include<stdio.h>
#include <stdlib.h>
int invert(
int x,
int p,
int n);
void TenToTwo(
int);
int main() {
int x, p, n;
printf(
"invert(x, p, n)");
printf(
"please input x");
scanf(
"%d", &x);
printf(
"please input p");
scanf(
"%d", &p);
printf(
"please input n");
scanf(
"%d", &n);
printf(
"Output x in binary form\nx:");
TenToTwo(x);
int ss;
ss = invert(x, p, n);
TenToTwo(ss);
return 0;
}
void TenToTwo(
int ten) {
int two[
100];
int shang = ten;
int yu;
int i =
0;
while (shang !=
0) {
yu = shang %
2;
shang = shang /
2;
two[i++] = yu;
}
for (
int j = i -
1; j >=
0; --j) {
printf(
"%d", two[j]);
}
printf(
"\n");
}
int invert(
int x,
int p,
int n) {
return x ^ (~(~
0<<n) << (p-n));
}