476. Number Complement(给一个数字求反)
来源:互联网 发布:java 中的super this 编辑:程序博客网 时间:2024/06/05 16:09
给定一个正整数,输出其补码。补码策略是翻转其二进制表示的位。
注意:
- 给定的整数保证在32位有符号整数的范围内。
- 您可以假定整数二进制表示中没有前导零位。
示例1:
输入: 5
输出:2
说明:5的二进制表示为101(无前导零位),其补码为010,所以需要输出2。
示例2:
输入: 1
输出: 0
说明:1的二进制表示为1(无前导零位),其补码为0.所以需要输出0。
好的解决方案是这样的,找到这个数从左边数第一个位1的位置,找到一个掩码从左边第一位开始都为1直到这个位置后,才这个位置一直到最右端都为0,然后掩码和这个数做或运算,然后取反.
2.也可以先给掩码取反然后和这个数做异或运算
这是第一种:
int findComplement(int num) {
int mask =(~0);
while(num & mask)
mask <<= 1;
return ~(num | mask);
}
第二种:
int findComplement(int num) {
int mask =(~0);
while(num & mask)
mask <<= 1;
mask = (~mask);
return num ^ mask;
}
阅读全文
0 0
- 476. Number Complement(给一个数字求反)
- [LeetCode]476. Number Complement(数字补码)
- Leetcode#476. Number Complement(求补码)
- LeetCode 476. Number Complement
- leetcode 476. Number Complement
- 【Leetcode】476. Number Complement
- 【Leetcode】476. Number Complement
- 476. Number Complement*
- LeetCode 476. Number Complement
- LeetCode 476. Number Complement
- LeetCode--476. Number Complement
- LeetCode 476. Number Complement
- 476. Number Complement
- 476. Number Complement [LeetCode]
- 476. Number Complement
- [LeetCode]476.Number Complement
- 476. Number Complement
- 【LeetCode】 476. Number Complement
- uva10905 最大整数组合
- apt-get install E: Encountered a section with no Package: header
- try, catch,finally ,return 执行顺序及详解
- View的工作流程-measure、layout、draw三大流程
- Python Excel数据查找
- 476. Number Complement(给一个数字求反)
- mvc和spring的结合使用
- SwipeMenuRecyclerView的使用,侧滑删除
- 1093:输入输出练习1
- 麻省理工大学公开课笔记:算法导论(一)——引言
- XShell上传、下载本地文件到linux服务器
- python之禅
- DotSpatial学习之路——添加栅格数据扩展
- mysql常见异常