首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JS:编解码优化

JS:编解码优化
EN

Stack Overflow用户
提问于 2020-09-28 22:29:25
回答 1查看 25关注 0票数 0

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

我是这样写的:

代码语言:javascript
复制
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]]
}

但我认为这件事可以做得更容易,有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-28 22:46:18

是。这可以通过按位运算符轻松完成。您的代码使用了系统的endianness,但是这个总是使用小端。

代码语言:javascript
复制
function encode(i, j) {
  return i | (j << 8);
}

function decode(x) {
  return [x & 0xff, x >> 8];
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64104197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档