Loading

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
posted @ 2019-05-14 09:08  魏美龍  阅读(662)  评论(0编辑  收藏  举报