我正在接收和发送两个小端数字的十进制表示。 我想要:
- 将一个变量左移8位
- 对它们进行按位或运算
- 将一个变量向左移动指定位数
- 创建表示16位数字的前半部分和后半部分的2个8位数字。
JavaScript(根据https://developer.mozilla.org/en/JavaScript/Reference/Operators/Bitwise_Operators)在移位时使用大端表示......
对于我来说,字节序有点陌生(我只有90%的把握我的步骤是我想要的)。 所以交换有点令人眼花缭乱。 请帮帮我!我只需要知道如何以有效的方式交换顺序。(我只能想到使用toString()返回值上的for循环)
swap16()
函数无法正确处理有符号整数。我不得不将其与此链接中的代码结合起来才能使一切正常工作:((((val & 0xFF) << 8) | ((val >> 8) & 0xFF)) << 16) >> 16
。 - martinez314function swap16(val) { var x = ((val & 0xFF) << 8) | ((val >> 8) & 0xFF); if (x < 0) x = (x & 0x7FFF) + 0x8000; return x; } function swap32(val) { var x = ((val & 0xFF) << 24) | ((val & 0xFF00) << 8) | ((val >> 8) & 0xFF00) | ((val >> 24) & 0xFF); if (x < 0) x = (x & 0x7FFFFFFF) + 0x80000000; return x; }
- sarme