python中的特殊JS运算符

2024-05-29 01:56:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我在“黑”我的路由器,我需要重写一个JS函数,它以hexdec格式接受日期,并将其转换为ymd

JS代码看起来像:

return [(((n >> 16) & 0xFF) + 1900), ((n >>> 8) & 0xFF), (n & 0xFF)];

其中n是格式为0x123456的变量(例如,0x符号后的6个十六进制数字) 发现python有类似于“>的运算符,但没有“>gt;”运算符。 你知道怎么做吗? 谢谢


Tags: 函数代码gtreturn格式js符号路由器
2条回答

使用>>。您仍要使用& 0xFF删除该标志。请注意,您不能遗漏&;部分,即(n>;8)&0xff,否则您将得到错误的结果,正如您已经指出的那样。在

首先,您应该知道JS的位运算符是在32位数据上操作的。而对于python,它假设数据可以有无限个位数。在

因此,JS中称为有符号传播右移的'>>'

def right_shift(data, bits):
    sign = (data >> 31) & 1 
    if sign:
       fills = ((sign << bits) - 1) << (32 - bits)
    else:
       fills = 0
    return ((data & 0xffffffff) >> bits) | fills

JS中的'>>>'。一种更可靠的方法来确保它与js具有相同的结果

^{pr2}$

相关问题 更多 >

    热门问题