Javascript NodeJS中无符号short上的位移位运算符
我试图对nodeJS/javascript中的无符号int执行Javascript NodeJS中无符号short上的位移位运算符,javascript,node.js,Javascript,Node.js,我试图对nodeJS/javascript中的无符号int执行按位NOT。据我所知,每个逐位运算符都是在有符号32位整数上执行的,这使得我在想对无符号16位整数(short)执行时感到困惑。这就是我想做的: c# ushort value = 41003; value = (ushort)~value; //Value is now 24532 which is correct nodeJS var value = 41003; value = ~value; //value is now -
按位NOT
。据我所知,每个逐位运算符都是在有符号32位整数上执行的,这使得我在想对无符号16位整数(short)执行时感到困惑。这就是我想做的:
c#
ushort value = 41003;
value = (ushort)~value;
//Value is now 24532 which is correct
nodeJS
var value = 41003;
value = ~value;
//value is now -41004 wich is NOT correct
如何在nodeJS/javascript中将最后一个值转换为无符号的16位int?您只需按位执行,即可获得相同的结果:
value = ~value & 0xFFFF;
您可以使用一个16位数字的最大值并执行一个
函数not16Bit(v){
return((1或者您可以简单地使用uint16数组
(new Uint16Array([~41003]))[0] //24532
嗯,node不知道您希望值是一个无符号的short
。这似乎就是我要查找的结果。谢谢