如何在javascript中将整数转换为short

Meh*_*egi 2 javascript c#

我在服务器端(c#)有一个整数a:

int a = 65512;
Run Code Online (Sandbox Code Playgroud)

当我可以把它变成短的时候:(short)a等于-24

我想继续转换到客户端(javascript)

我试图将它转换为第一个二进制文件:a.toString(2)然后做一个a.toString(2) & 0xFF但是徒劳无功

如何在javascript端将数字转换为短数字?

Pat*_*rts 5

您可以通过使用TypedArray's 来强制JavaScript中的数字到特定的数字类型,具体来说,Int16Array:

function toShort(number) {
  const int16 = new Int16Array(1)
  int16[0] = number
  return int16[0]
}

console.log(toShort(65512))
Run Code Online (Sandbox Code Playgroud)


T.J*_*der 5

JavaScript没有intshort和这样的,它具有number,这是一个IEEE-754双精度二进制浮点类型(和类型数组如帕特里克罗伯茨的答案)。但是,对于某些操作,它的行为就像具有 32 位整数类型。

您可以使用您的数字并使用位移运算符来丢失该 32 位值的一半,如下所示:

var a = 65512;
a = (a << 16) >> 16;
console.log(a);
Run Code Online (Sandbox Code Playgroud)