我有一个非常大的数字:5799218898.并希望将其右移到13位.
所以,windows-calculator或python给了我:
5799218898 >> 13 | 100010100100001110011111100001 >> 13 70791 | 10001010010000111
正如所料.
但是Javascript:
5799218898 >> 13 | 100010100100001110011111100001 >> 13 183624 | 101100110101001000
我认为这是因为javascript中的内部整数表示,但找不到任何相关内容.
我需要将包含内存使用量的字符串1048576(例如:(1M))转换为人类可读的版本,反之亦然.
注意:我已经看过这里了: 可重用的库,以获得文件大小的人类可读版本?
在这里(即使它不是python): 如何将人类可读的内存大小转换为字节?
到目前为止没有什么能帮助我,所以我在其他地方看了
我在这里找到了一些可以解决此问题的内容:http://code.google.com/p/pyftpdlib/source/browse/trunk/test/bench.py?specpec = swn984&r = 984#137,或者,对于较短的网址:http://goo.gl/zeJZl
代码:
def bytes2human(n, format="%(value)i%(symbol)s"):
"""
>>> bytes2human(10000)
'9K'
>>> bytes2human(100001221)
'95M'
"""
symbols = ('B', 'K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y')
prefix = {}
for i, s in enumerate(symbols[1:]):
prefix[s] = 1 << (i+1)*10
for symbol in reversed(symbols[1:]):
if n >= prefix[symbol]:
value = float(n) / prefix[symbol]
return format % locals()
return format % dict(symbol=symbols[0], value=n)
Run Code Online (Sandbox Code Playgroud)
还有一个转换功能(相同的网站):
def human2bytes(s): …Run Code Online (Sandbox Code Playgroud)