python中的多位操作
我有一个变量,它包含一个位值,比如10000000,表示10mb。我想写一个函数,从位中的值返回一个具有正确单位的字符串,并正确转换 例如,如果使用52200000,则返回52.2mb 我不知道如何继续。有人能帮忙吗,谢谢 您可以使用上述函数将字节转换为kb、mb、gb、tbpython中的多位操作,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
- 将字节转换为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.