Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.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
Two补充了相同的代码python/JavaScript不同的结果_Javascript_Python_Node.js - Fatal编程技术网

Two补充了相同的代码python/JavaScript不同的结果

Two补充了相同的代码python/JavaScript不同的结果,javascript,python,node.js,Javascript,Python,Node.js,在python 2.7中,以下代码返回正确的结果(-18027917) from\uuuuu future\uuuuu导入打印功能 def两个组件(val,位): 如果(val&(1为什么这些线不匹配 Python: val -= 1 << bits val-=1首先 val-=(val-1)如果直接传递val和位的正确值,结果会发生变化吗?这将排除parseInt作为原因,让totwoscompletion。谢谢迈克(和卡尔).我一定是在某个时候弄乱了内疚的界限,但经过修

在python 2.7中,以下代码返回正确的结果(-18027917

from\uuuuu future\uuuuu导入打印功能
def两个组件(val,位):

如果(val&(1为什么这些线不匹配

Python:

    val -= 1 << bits
val-=1首先


val-=(val-1)如果直接传递
val
位的正确值,结果会发生变化吗?这将排除
parseInt
作为原因,让
totwoscompletion
。谢谢迈克(和卡尔).我一定是在某个时候弄乱了内疚的界限,但经过修复,javascript版本现在似乎可以工作了。我接受了Mike的回答,因为它提供了重要的额外信息,但却对Carls进行了升级,因为它也是正确的。你们两个都是冠军!
function toTwosComplement(val, bits) {
    if ((val & (1 << (bits - 1))) != 0) {
        val -= (val - 1) << bits;
    }
    return val;
}

valBinary = "110111011001110101001110011";  // same as python example
console.log(toTwosComplement(parseInt(valBinary, 2), valBinary.length));
    val -= 1 << bits
    val -= (val - 1) << bits;
val -= (val - 1) << bits;
val -= 1 << bits