任何数在内存中都是用“补码”形式表示的。
- 正数:
正数的反,补码都和原码一样。 - 负数:
反码在原码基础上最高位不变(为1),其余各位按位取反。
补码是在反码基础上,加1得到的。
给定一个数,求它的相反数?
分析:
1:正数的话,他的相反数就是负数。负数的补码怎么算呢?正数的源码取反再加1。
2:负数的话,他的相反数就是正数。知道负数求正数的话,这应该是一个逆运算,应该是 减1之后再取反
private static int method(int inputNum){
int result = 0;
if(inputNum >= 0){
result = ~inputNum + 1;
} else {
result = ~(inputNum - 1);
}
return result;
}
网友评论