美文网首页学学nodejs小码农养成记
nodejs 十六进制字符串型数据与btye型数据相互转换

nodejs 十六进制字符串型数据与btye型数据相互转换

作者: F_wind | 来源:发表于2017-03-09 16:25 被阅读1910次

    nodejs,ES6

    • byte型转换十六进制字符串
    /**
     * byte型转换十六进制
     * @param b
     * @returns {string}
     * @constructor
     */
    const Bytes2HexString = (b)=> {
        let hexs = "";
        for (let i = 0; i < b.length; i++) {
            let hex = (b[i]).toString(16);
            if (hex.length === 1) {
                hexs = '0' + hex;
            }
            hexs += hex.toUpperCase();
        }
        return hexs;
    }
    
    • 十六进制字符串转换btye型
     /**
     * 十六进制转换btye型
     * @param str
     * @returns {Promise}
     */
    const Hexstring2btye = (str)=> {
        let pos = 0;
        let len = str.length;
        if (len % 2 != 0) {
            return null;
        }
        len /= 2;
        let hexA = new Array();
        for (let i = 0; i < len; i++) {
            let s = str.substr(pos, 2);
            let v = parseInt(s, 16);
            hexA.push(v);
            pos += 2;
        }
        return hexA;
    }
    
    • 模拟实现,使用谷歌最新版内核或者支持ES6浏览器,按F12打开调试模式,将以下两个方法输入(粘入),直接调用即可在线查看。

    • 举个例子:
      1.输入byte型数据[160,100],调用Bytes2HexString([160,100]),可以得到"A064"
      2.输入十六进制字符串数据"A064",调用Hexstring2btye("A064"),可以得到[160,100]

    持续更新,敬请期待...

    相关文章

      网友评论

      • 谢mingmin:不是有buffer么
        F_wind:对,nodejs里buffer是存放二进制数据类型的,这个方法Bytes2HexString(b)处理的其实就是buffer,只不过是在单例转换的基础上,批量输出十六进制的字符串,可以将buffer转换视为Bytes2HexString(b)转换的超类。我是这么理解的,哪里说的不对,还请指教:smile:
      • F_wind:自己来抢个沙发:joy:

      本文标题:nodejs 十六进制字符串型数据与btye型数据相互转换

      本文链接:https://www.haomeiwen.com/subject/ekzwgttx.html