【问题标题】:How to convert two 8-bits to 16-bits and vice versa in Javascript?如何在 Javascript 中将两个 8 位转换为 16 位,反之亦然?
【发布时间】:2015-06-25 02:47:38
【问题描述】:

我知道以前有人问过这个问题,但我无法找到解决方案。如果主题重复,我深表歉意,但我认为不是。

我从 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

请您帮帮我。谢谢。

【问题讨论】:

    标签: javascript 16-bit 8-bit


    【解决方案1】:

    你交换了字节:

    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
    

    【讨论】:

      猜你喜欢
      • 2020-02-15
      • 2012-10-31
      • 2012-08-03
      • 2016-06-08
      • 1970-01-01
      • 2021-09-24
      • 1970-01-01
      • 2013-07-01
      • 2013-11-11
      相关资源
      最近更新 更多