Javascript无符号短到有符号短

Javascript无符号短到有符号短,javascript,bytearray,Javascript,Bytearray,我有以下代码: var v = [0xFF, 0xFF]; alert((v[0]<<8) | v[1]); var v=[0xFF,0xFF]; 警报((v[0]假设高位为符号: var sign = v[0] & (1 << 7); var i = ((v[0] & 0x7F) << 8) | v[1]; if (sign) { i = -i; } var-sign=v[0]&(1不应该[0xFF,0xFF]被-1签名吗?如果我

我有以下代码:

var v = [0xFF, 0xFF];
alert((v[0]<<8) | v[1]);
var v=[0xFF,0xFF];
警报((v[0]假设高位为符号:

var sign = v[0] & (1 << 7);
var i = ((v[0] & 0x7F) << 8) | v[1];
if (sign) {
    i = -i;
}

var-sign=v[0]&(1不应该[0xFF,0xFF]被-1签名吗?如果我在C#中执行以下代码:
Int16 v=-1;byte[]int16LittleEndian=BitConverter.GetBytes(v);Console.WriteLine(BitConverter.ToString(ba))
我得到
FF-FF
作为回报。与
Console.WriteLine(BitConverter.ToInt16(新字节[]{0xFF,0xFF},0))相同
我得到-1;是的,这取决于你使用的约定。如果你使用两个补语,则为-1。更新了两个补语的答案
var i = (((v[0] << 8) | v[1]) << 16) >> 16);