如何用一个函数就能实现将正数变成对应的负数,将负数变成对应的正数:
int turn(int a)
{
a = ~a + 1;
return a;
}
int main()
{
printf(“%d\n”, turn(5));
printf(“%d\n”, turn(0));
printf(“%d\n”, turn(-1));
return 0;
}
正数取反加一后,得到就是负数的补码,负数是以补码的形式存在内存中,补码转为原码是就是正数要转化后对应的负数
负数取反加一后,得到一个补码,但正数的补码原码一样
注意:取反和取反码是不同的两个概念,运算时都是补码形式参与运算,因为有负数参与