求负数的补码问题
怎么求一个负数的补码呢??我写了个程序但是老是不对..帮忙看看#include<stdio.h>
#define N 16
int buma(int a)
{
int b,c;
b=(-1)<<(N-1);
c=((~a)|b)|1;
return c;
}
int main()
{
int a,b;
scanf("%d",&a);
printf("%x %d\n",a,a);
b=buma(a);
printf("%x %d\n",b,b);
return 0;
}