我知道这已经被问过了,但是我一直无法解决。如果主题重复,我深表歉意,但我认为不是。
我从Uint16Array中提取了一个数字,可以转换为一对8位数字,并且效果很好,但是当我想将这两个8位数字转换为第一个数字时,我无法获得它。
var firstNumber = 1118; // extracted from Uint16Array
var number8Bit1 = firstNumber & 0xff;
var number8Bit2 = ((firstNumber >> 8) & 0xff);
console.log(number8Bit1, number8Bit2); // 94, 4
var _firstNumber = (((number8Bit1 & 0xff) << 8) | (number8Bit2 & 0xff));
console.log(_firstNumber); // 24068 <-- 1118
您会很乐意为我提供帮助。谢谢你。
您交换了字节:
var _firstNumber = (((number8Bit2 & 0xff) << 8) | (number8Bit1 & 0xff));
合并时必须执行提取的相反操作。
var firstNumber = 1118; // extracted from Uint16Array
var high = ((firstNumber >> 8) & 0xff);
var low = firstNumber & 0xff;
console.log(high, low); // 4, 94
var _firstNumber = (((high & 0xff) << 8) | (low & 0xff));
console.log(_firstNumber); // 1118
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句