c++ 一个数的相反数

来源:百度知道 编辑:UC知道 时间:2024/06/03 17:13:17
能不能通过位运算得到?
例如 1是-1

如果 你知道原码和补码的话,你就会计算了。
正数用其原码表示,负数用它的补码表示,补码就是将原码按位取反再加1.
如:
int a = N; (N > 0)
~a + 1 就是其相反数。
int a = N (N < 0)
~(a - 1) 就是其相反数
int a = N (N == 0)
a 就是其相反数

直接在前面的加-就可以了
int i = 1;
int j = -i;

位运算也可以
int x = (~i)+1;

取反再加一
例如
~1=-2
-2+1=-1

取反+1