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

推荐订阅源

Stack Overflow Blog
Stack Overflow Blog
Y
Y Combinator Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
M
MIT News - Artificial intelligence
GbyAI
GbyAI
A
About on SuperTechFans
T
The Blog of Author Tim Ferriss
雷峰网
雷峰网
Blog — PlanetScale
Blog — PlanetScale
J
Java Code Geeks
IT之家
IT之家
Microsoft Azure Blog
Microsoft Azure Blog
V
V2EX
爱范儿
爱范儿
N
Netflix TechBlog - Medium
U
Unit 42
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
博客园 - 叶小钗
G
Google Developers Blog
Jina AI
Jina AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The GitHub Blog
The GitHub Blog
腾讯CDC

博客园 - 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('');
}