十进制-二进制秘密

无符号十进制
1、n&(n-1) 能够去掉二进制n中最右一位1
2、n%2 或者 n&1 能够判断最后一位是否为1
3、从右到左遍历整数的位字符串(n = n >> 1)

相关算法题:

给定一个整数,编写一个函数来判断它是否是 2 的幂次方

class Solution(object):
    def isPowerOfTwo(self, n):
        """
        :type n: int
        :rtype: bool
        """
        if n == 0:
            return False 
        return True if n&(n-1) == 0 else False 
            

颠倒给定的 32 位无符号整数的二进制位。

利用上面的信息

class Solution:
    # @param n, an integer
    # @return an integer
    def reverseBits(self, n):
        res, power = 0, 31
        while n:
            res += (n & 1) << power
            n = n >> 1
            power -= 1
        return res 

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

正负数、越界值

class Solution(object):
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        boun = (1 << 31) - 1 if x > 0 else 1 << 31

        y, res = abs(x), 0

        while y != 0:
            res = res*10 + y%10
            if res > boun:
                return 0
            y //= 10
        return res if x > 0 else -1 * res 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 网站乱码问题我们会经常碰到,大多见于非英文的中文字符或其他字符乱码,而且,这类问题常常是因为编码方式问题,主要原因...
    波段顶底阅读 3,021评论 1 9
  • 背景 在java中float赋值给double,会产生精度问题。 输出为2.0999999046325684。 小...
    我叫小小强阅读 19,314评论 2 23
  • 其实最了解自己的人永远都是自己!包括自己的身体状况和心理状态。 身体状况,有医生可以治疗,还有药物可以控制。 心理...
    baymax的超级世界阅读 320评论 0 2
  • 我们坐在山顶上 仰望星空,假装深沉 探讨着人生与无常 我们走在小溪边 俯看倒影,假装浪漫 表达着爱意与心迹 青春啊...
    二两酒仙阅读 490评论 18 20
  • 每一次的扣扣消息打开之后没有看到你的头像闪动。心情就沉重了许多。不知道这样的结局是好是坏。还是想念你。深夜的人都是...
    嘟嘟好好度过阅读 164评论 0 0