Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.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中执行Javascript浮点运算_Javascript_Python_Floating Point - Fatal编程技术网

在Python中执行Javascript浮点运算

在Python中执行Javascript浮点运算,javascript,python,floating-point,Javascript,Python,Floating Point,我正在编写一个Python程序,它与我没有编写的webapp交互。我需要在程序中表示一些状态,这些状态不是由服务器发送到(javascript)客户端的,而是在客户端和服务器上使用共享信息分别计算的 例如,交换可能类似于: var x = getValueFromServer(); //client gets 0.73346 x *= 1 << 30; result = x & 1023 但在Python中,这个值为696,而在node中运行上述javascript时,得到

我正在编写一个Python程序,它与我没有编写的webapp交互。我需要在程序中表示一些状态,这些状态不是由服务器发送到(javascript)客户端的,而是在客户端和服务器上使用共享信息分别计算的

例如,交换可能类似于:

var x = getValueFromServer(); //client gets 0.73346
x *= 1 << 30;
result = x & 1023
但在Python中,这个值为696,而在node中运行上述javascript时,得到的值为566。我还尝试了其他几种打包和解包格式的组合,但没有成功

我最后的办法是在Python内部使用节点子进程执行javascript,但我更愿意避免这种情况。如何解决此问题?

x=0.73346
x = 0.73346
x = x * (1 << 30)
x = int(x) & 1023

x=x*(1)python是如何接收要使用的数据的?一个websocket。不过,这在这里并不特别相关。从技术上讲,它不是直接接收浮点,而是接收一些整数并计算浮点,因此对正在使用的浮点进行解码没有问题。我不确定您想用
struct
实现什么:这将是rei将浮点的位模式解释为整数,而不是进行类似算术运算的操作。执行类似于
int(0.73346*(1)对,因此您提供的表达式在python中不起作用,因为没有为浮点定义位操作。解包操作是为了保持位顺序不变并允许该操作。您尝试过吗?它在命令行中对我有效(在python 2和python 3中)啊,看来JavaScript让你在浮点上使用位操作的方法是把它们转换成int型……我甚至没有考虑过。谢谢!
x = 0.73346
x = x * (1 << 30)
x = int(x) & 1023