Javascript JS:编码/解码优化

Javascript JS:编码/解码优化,javascript,encoding,decoding,Javascript,Encoding,Decoding,我需要2个简单的函数将2个小(8位)数字编码/解码为一个(16位) 我是这样写的: function encode(i, j) { const int16 = new Int16Array(1) const int8 = new Int8Array(int16.buffer) int8[0] = i int8[1] = j return int16[0] } function decode(x) { const int16 = new Int16Array(1) i

我需要2个简单的函数将2个小(8位)数字编码/解码为一个(16位)

我是这样写的:

function encode(i, j) {
  const int16 = new Int16Array(1)
  const int8 = new Int8Array(int16.buffer)
  int8[0] = i
  int8[1] = j
  return int16[0]
}

function decode(x) {
  const int16 = new Int16Array(1)
  int16[0] = x
  const int8 = new Int8Array(int16.buffer)
  return [int8[0], int8[1]]
}

但是我认为它可以做得容易得多,有什么建议吗?这可以通过位运算符轻松完成。您的代码使用了系统的,但这一个总是使用小的endian

function encode(i, j) {
  return i | (j << 8);
}

function decode(x) {
  return [x & 0xff, x >> 8];
}
函数编码(i,j){
返回i |(j>8];
}