javascript - 相当于 JavaScript/Node.js 中的 _byteswap_ulong?

标签 javascript node.js

JavaScript 中 _byteswap_ulong 的等价物是什么?

我当前正在使用以下 C++ 代码:

int tag = 2832779;
tag = _byteswap_ulong(tag) >> 8;

标签的结果是9124193

我尝试在 JavaScript 中做同样的事情:

var tag = 2832779;
tag = (((tag >> 24) & 0x000000FF) | ((tag >> 8) & 0x0000FF00) | ((tag << 8) & 0x00FF0000) | ((tag << 24) & 0xFF000000)) >> 8;

但是,标签(JS)的结果是-7653077

是否可以像在 C++ 中那样在 JavaScript 中交换字节?

非常感谢!

最佳答案

假设您的意思是 9124139,下面是一个应该可以工作的简单函数:

function byteSwap(n) {
  n = n.toString(16);
  if ((n.length % 2) !== 0)
    n = '0' + n;
  return parseInt(n.match(/([a-z0-9]{2})/g).reverse().join(''), 16);
}

console.log(byteSwap(2832779));
// outputs: 9124139

关于javascript - 相当于 JavaScript/Node.js 中的 _byteswap_ulong?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30124662/

相关文章:

javascript - React 钩子(Hook)形式 - 对话框内的字段数组( Material UI)

javascript - 从另一个单元格更改一个单元格的内容

javascript - 如何在 NodeJS/ExpressJS/Passport 中显示登录的用户名?

javascript - 解码 nodeJS 请求上的分块响应

javascript - Socket.io 浏览器客户端未接收来自 socket.io 客户端的发出事件

mysql - Heroku Node.js 应用程序无法启动

javascript - 使用 selenium python 访问下拉元素

javascript - 使用 jQuery 在 PHP 中获取 JSON 响应

javascript - 键盘导致模态消失 React-Native

angularjs - 刚接触 MEAN 堆栈,如何获取数据?