zoukankan      html  css  js  c++  java
  • Python 进制转换

    def bytes2human(n):
        symbols = ('K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y')
        prefix = {}
        for i, s in enumerate(symbols):
            prefix[s] = 1 << (i + 1) * 10
        for s in reversed(symbols):
            if n >= prefix[s]:
                value = float(n) / prefix[s]
                return '%.1f%s' % (value,s)
        return '%sB' % n
    

    python语言n = (n+1)<<1是什么意思

    前提n得有一个初始值,比如n=1,不然会报错那么n=n+1的意思就1+1再赋值给变量n,那么n就等于2。然后<<符号是按位左移的意思,就是把对象转为2进制,有效数字往左移动。<<1就是按位左移1个单位。比如2<<1意思就是2按位左移1个单位,2的二进制就是00000010,左移一位就是00000100,转为十进制就是4。那么按位左移多少个单位的操作,你可以理解为对象乘以2的单位次方。上面的2<<1也就是2乘以2的1次方等于4。用编译器测试一下:

    >>> n=2
    >>> n=n+1
    >>> n
    3
    >>> n<<1
    >>> n=(n+1)<<1
    >>> n
    8
    
  • 相关阅读:
    长沙雅礼中学集训-------------------day1(内含day0)
    17年 5月份刷题版
    manecher_回文串;
    后缀数组
    湖南集训
    好像又好久没更了;计算课noip模拟赛;
    dp的练习题;
    oj1638
    【noi】植物大战僵尸
    #日常吐槽
  • 原文地址:https://www.cnblogs.com/meilong/p/Python-jin-zhi-zhuan-huan.html
Copyright © 2011-2022 走看看