2进制、16进制、字符串互转

单片机APP的项目目前完成的差不多了,主要是蓝牙软件与硬件对接比较费时费力

也总结出来了不少经验,补齐了很多不足的知识点,也了解了很多方法,简单做个总结出来

 

二进制arrayBuffer转为16进制,并且以字符串形式展现

    // ArrayBuffer转16进制的字符串示例
    ab2hex(buffer) {
      let hexArr = Array.prototype.map.call(
        new Uint8Array(buffer),
        function (bit) {
          return ("00" + bit.toString(16)).slice(-2);
        }
      );
      return hexArr.join("");
    },

字符串转为二进制arraybuffer格式

    // 字符串转arrayBuffer
    string2buffer(hex_str) {
      let that = this;
      console.log("hex_str", hex_str);
      let typedArray = new Uint8Array(
        hex_str.match(/[\da-f]{2}/gi).map(function (h) {
          return parseInt(h, 16);
        })
      );
      return typedArray.buffer;
    },

16进制转字符串格式

    // 16进制转为字符串
    hextoString(hex) {
      var arr = hex.split("");
      var out = "";
      for (var i = 0; i < arr.length / 2; i++) {
        var tmp = "0x" + arr[i * 2] + arr[i * 2 + 1];
        var charValue = String.fromCharCode(tmp);
        out += charValue;
      }
      return out;
    },

 

posted @ 2023-01-29 11:37  一抒山河  阅读(219)  评论(0编辑  收藏  举报