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/