Example
Input:5
Output:2
解释: 5的二进制表示为101(无前导零位),其补码为010。因此需要输出2。
Solution1 (My Solution)
类解决方案{
公共:
int findComplement(int num) {
std:bitset32bits(num);
int endPos=ignoreLeadingZero(位);
for (int i=0; i=endPos; i++){
位[i]=!位[i];
}
返回int(bits.to_ulong());
}
私人:
intignoreLeadingZero(bitset32位){
size_t 位长度=位.size();
for (int i=位长度- 1; i=0; i--){
if (bits[i]==0) 继续;
否则返回我;
}
}
};
Solution2
类解决方案{
公共:
int findComplement(int num) {
无符号掩码=~0;
而(数字掩码)掩码=1;
返回掩码num;
}
【数字补码详解与应用】相关文章:
用户评论
我终于明白了补数的概念!
有13位网友表示赞同!
这篇文章讲解的很清楚!
有6位网友表示赞同!
补数的应用场景很多啊!
有12位网友表示赞同!
学习一下数字补数,感觉很有用!
有11位网友表示赞同!
这个概念好绕口啊,需要理解一遍又一遍。
有17位网友表示赞同!
原来在计算机世界里也是这么用的,真挺酷的!
有18位网友表示赞同!
看来补码是计算机编程中常见的基础知识。
有11位网友表示赞同!
以前一直搞不明白为什么会有负数的补数,这下明白了!
有11位网友表示赞同!
这篇文章让我对“两补”和“十补”有了更清晰的认识。
有6位网友表示赞同!
数字补数这种技巧确实很厉害!
有8位网友表示赞同!
学习了这么久,终于把补数理解透了!
有20位网友表示赞同!
还是得多多练习才能熟练掌握补数运算啊!
有16位网友表示赞同!
真想不到补数还会用到生活中去!
有11位网友表示赞同!
下次做程序的时候可以试试用补码表示负数!
有9位网友表示赞同!
这篇文章的图表理解起来特别容易!
有8位网友表示赞同!
数字补数这种东西,需要多查资料才能彻底搞懂啊!
有17位网友表示赞同!
补数的概念其实挺简单的,关键是掌握了方法。
有18位网友表示赞同!
学习这个知识点,感觉对计算机世界有了更深的理解。
有19位网友表示赞同!
补数的应用范围真广泛!看来这篇文章还挺有用的!
有15位网友表示赞同!