Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的多位操作_Python_String_Bit - Fatal编程技术网

python中的多位操作

python中的多位操作,python,string,bit,Python,String,Bit,我有一个变量,它包含一个位值,比如10000000,表示10mb。我想写一个函数,从位中的值返回一个具有正确单位的字符串,并正确转换 例如,如果使用52200000,则返回52.2mb 我不知道如何继续。有人能帮忙吗,谢谢 您可以使用上述函数将字节转换为kb、mb、gb、tb 将字节转换为KBprint(bytesto(314575262000000,'k'))#314575262000.0 KB 将字节转换为MBprint(bytesto(314575262000000,'m'))#3145

我有一个变量,它包含一个位值,比如10000000,表示10mb。我想写一个函数,从位中的值返回一个具有正确单位的字符串,并正确转换

例如,如果使用52200000,则返回52.2mb

我不知道如何继续。有人能帮忙吗,谢谢

您可以使用上述函数将字节转换为kb、mb、gb、tb

  • 将字节转换为KB
    print(bytesto(314575262000000,'k'))#314575262000.0 KB
  • 将字节转换为MB
    print(bytesto(314575262000000,'m'))#314575262.0 MB
  • 将字节转换为TB
    print(bytesto(314575262000000,'t'))#314.575262 TB
def人性化(n):
base=1000.0#如果需要kib Mib等,则替换为1024
字母=['','k','M','G','T','P','E','Z','Y']
f=浮动(n)
对于字母x:
如果f

如今,Mb通常指十进制的百万字节,而Mib通常指1024*1024字节。这段代码很容易切换。

10000000字节不是10 mb。您可以发布五个或十个其他示例输入和输出吗?这将字节格式化为人类可读的:您混淆了mb(=1000B)和MiB(=1024B)-请参阅:@mata了解MiB和mb之间的区别。SMB表示百万位,MB表示百万字节
def bytesto(bytes, to, bsize=1000):
    a = {'k' : 1, 'm': 2, 'g' : 3, 't' : 4, 'p' : 5, 'e' : 6 }
    r = float(bytes)
    for i in range(a[to]):
        r = r / bsize
    return(r)
def humanize(n):
   base=1000.0   # replace with 1024 if you want kib Mib etc
   letters=['','k','M','G','T','P','E','Z','Y'] 
   f=float(n)
   for x in letters:
       if f < base: break
       f /= base
   return '{:.3}{}b'.format(f,x) # change {}b to {}ib if working with kib etc.