leetcode
来源:互联网 发布:重生进军网络主播 编辑:程序博客网 时间:2024/06/01 20:52
Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation.
Note:
- The given integer is guaranteed to fit within the range of a 32-bit signed integer.
- You could assume no leading zero bit in the integer’s binary representation.
Example 1:
Input: 5Output: 2Explanation: The binary representation of 5 is 101 (no leading zero bits), and its complement is 010. So you need to output 2.
Example 2:
Input: 1Output: 0Explanation: The binary representation of 1 is 1 (no leading zero bits), and its complement is 0. So you need to output 0.
my solution:
大致思路:
负数可以利用 在以补码形式存储的特性求解
正数我暂时只想到移位:
class Solution {public: int findComplement(int num) { if (num < 0) { return (unsigned int)num - (unsigned int)(1<<31) - 1; } else { int mask = 1; int temp = num; while (num !=0) { mask = mask << 1; num = num >>1; }if (temp == 0)return 1;else return (mask - 1)^temp; } }};
0 0
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode
- leetcode:
- leetcode:
- LeetCode
- leetcode
- LEETCODE
- leetcode
- leetCode
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode:
- leetcode
- Vulkan编程指南翻译 第四章 队列和命令 第1节 管理资源的状态
- PAT-A 1005. Spell It Right (20)
- C++String类的实现
- 《Head first设计模式》学习笔记 – 工厂方法模式
- java使用poi导入excel表处理小数点
- leetcode
- fft(快速傅里叶变换)学习草稿,逆dft证明
- php中抽象类与接口的区别
- java集合泛型的本质
- 17
- Shiro-学习总结-认证之自定义realm
- 写在之前的话
- 点滴积累-redis的使用
- Editorial Divide by Zero and Codeforces Round #399 (Div. 1+2, combined) (A~F)