相关疑难解决方法(0)

在javascript中的Bitshift

我有一个非常大的数字:5799218898.并希望将其右移到13位.
所以,windows-calculator或python给了我:

5799218898 >> 13 | 100010100100001110011111100001 >> 13
70791            | 10001010010000111

正如所料.

但是Javascript:

5799218898 >> 13 | 100010100100001110011111100001 >> 13
183624           | 101100110101001000

我认为这是因为javascript中的内部整数表示,但找不到任何相关内容.

javascript bit-shift

21
推荐指数
2
解决办法
1万
查看次数

字节到人类可读,然后回来.没有数据丢失

我需要将包含内存使用量的字符串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)

python memory converter human-readable

9
推荐指数
1
解决办法
5039
查看次数