小程序 ES常用的一些数据转换

// ArrayBuffer转16进度字符串示例(无符号)function ab2hex(buffer) { return Array.prototype.map.call(buffer, x => ( Math.floor((x >>> 32).toString(16).length % 2 != 0) ? (`${"0"}${(x >>>...
摘要由CSDN通过智能技术生成
// ArrayBuffer转16进度字符串示例(无符号)
function ab2hex(buffer) {
  return Array.prototype.map.call(buffer, x => (
    Math.floor((x >>> 32).toString(16).length % 2 != 0) ? (`${"0"}${(x >>> 32).toString(16)}`) : (x >>> 32).toString(16))).join('').toLocaleUpperCase();
}

// 16进制字符串转ArrayBuffer补齐20bit
function hex2abFill(value) {
  var typedArray = new Uint8Array(value.match(/[\da-f]{2}/gi).map(function (h) {
    return parseInt(h, 16)
  }))
  var buffer = typedArray.buffer;
  var bufLen = buffer.byteLength;
  if (Math.floor(bufLen % 20) != 0) {
    var fillBuffer = new Uint8Array(Math.ceil(bufLen / 20) * 20);
    fillBuffer.set(typedArray);
    buffer = fillBuffer.buffer;
  }
  return buffer;
}

// 16进制字符串转ArrayBuffer不处理
function hex2ab(value) {
  var typedArray = new Uint8Array(value.match(/[\da-f]{2}/gi).map(function (h) {
    return parseInt(h, 16);
  }))
  return typedArray.buffer;
}

/**
 * u32转HEX
 */
function uint32ArrayToHex(arrayUint32) {
  let u32Hex = "";
  let srcLen = arrayUint32.length;
  for (let h = 0; h < srcLen; h++) {
    let valHex = (arrayUint32[h] >>> 32).toString(16);
    let valLen = valHex.length;
    let hexFill = ""
    let fillLen = 8 - valLen;
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值