惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
WordPress大学
WordPress大学
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tailwind CSS Blog
Engineering at Meta
Engineering at Meta
MongoDB | Blog
MongoDB | Blog
爱范儿
爱范儿
小众软件
小众软件
MyScale Blog
MyScale Blog
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
SegmentFault 最新的问题
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
V
V2EX
量子位
云风的 BLOG
云风的 BLOG
A
About on SuperTechFans
阮一峰的网络日志
阮一峰的网络日志
Last Week in AI
Last Week in AI
Martin Fowler
Martin Fowler
C
Check Point Blog
月光博客
月光博客

博客园 - Zion0707

Codex接入DeepSeek token实现对话与操作,so easy! Openclaw只能聊天不能操作解决方案 Ubuntu从零搭建Openclaw Openclaw安装问题记录 React数字滚动,增加或减少效果 react hooks实现对元素拖拽及鼠标滚轮缩放 前端实现图片文字识别并提取 ECharts实现两条曲线数据比较,数据高出区域高亮显示 canvas实现视频播放并支持自动播放 fabricjs实现虚线流动动画效果 React国际化方案及示例 fabricjs如何导入echarts fabricjs元素对齐方式实现 萤石云视频监控和回放方案 React仿photoshop参考线功能 react-router-dom v6 使用 “DatePicker”不能用作 JSX 组件。 Element plus的tree组件实现单选和搜索功能 AES-128 算法加解密 js 版 React 下拉多选,全选/全不选功能组件
16进制相关操作方法 js 版
Zion0707 · 2021-06-07 · via 博客园 - Zion0707

 开发小程序蓝牙开锁,应用到了16进制相关操作方法,记录一下相关方法。

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


// 16进制字符串转ArrayBuffer
export const string2buffer = (str) => {
    const buf = new ArrayBuffer(str.length / 2);
    const bufView = new Uint8Array(buf);
    for (let i = 0, strLen = str.length; i < strLen; i++) {
        bufView[i] = parseInt(str.slice(i * 2, i * 2 + 2), 16);
    }
    return buf;
}


// 16进制字符串分隔每两个字符成数组
export const hexStr2ToArray = (str) => {
    const arr = [];
    for (let i = 0, len = str.length / 2; i < len; i++) {
        arr.push(str.slice(i * 2, i * 2 + 2));
    }
    return arr;
}


// 10进制数组转16进制字符串
export const intArrToHexStr = (arr) => {
    let rArr = [];
    for (let i = 0, len = arr.length; i < len; i++) {
        const item = arr[i].toString(16);
        rArr.push(item.length === 1 ? '0' + item : item);
    }
    return rArr.join('');
}