2024-05-29 01:56:27 发布
网友
我在“黑”我的路由器,我需要重写一个JS函数,它以hexdec格式接受日期,并将其转换为ymd
JS代码看起来像:
return [(((n >> 16) & 0xFF) + 1900), ((n >>> 8) & 0xFF), (n & 0xFF)];
其中n是格式为0x123456的变量(例如,0x符号后的6个十六进制数字) 发现python有类似于“>的运算符,但没有“>gt;”运算符。 你知道怎么做吗? 谢谢
使用>>。您仍要使用& 0xFF删除该标志。请注意,您不能遗漏&;部分,即(n>;8)&0xff,否则您将得到错误的结果,正如您已经指出的那样。在
>>
& 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具有相同的结果
使用
>>
。您仍要使用& 0xFF
删除该标志。请注意,您不能遗漏&;部分,即(n>;8)&0xff,否则您将得到错误的结果,正如您已经指出的那样。在首先,您应该知道JS的位运算符是在32位数据上操作的。而对于python,它假设数据可以有无限个位数。在
因此,JS中称为有符号传播右移的'>>'
JS中的'>>>'。一种更可靠的方法来确保它与js具有相同的结果
^{pr2}$相关问题 更多 >
编程相关推荐