Skip to content

进制转换

16进制字符串转化为Uint8Array 数组类型

要将16进制字符串转换为Uint8Array类型,你可以使用以下步骤:

  1. 将16进制字符串两个字符一组分割。
  2. 使用parseInt函数将每组字符转换为相应的十进制数字。
  3. 使用这些十进制数字作为参数创建一个Uint8Array

以下是实现这一功能的JavaScript代码示例:

javascript
function hexStringToUint8Array(hexString) {
  let byteArray = new Uint8Array(hexString.match(/.{2}/g).map(byte => parseInt(byte, 16)));
  return byteArray;
}
 
// 示例使用
let hexString = "48656c6c6f"; // 对应于ASCII的"Hello"
let uint8Array = hexStringToUint8Array(hexString);
console.log(uint8Array); // 输出Uint8Array内容

在这个例子中,hexString是一个包含16进制数字的字符串,每两个字符代表一个字节。

函数hexStringToUint8Array将这个字符串转换为Uint8Array。

Uint8Array 数组类型转化为16进制字符串

javascript
function uint8Array(uint8Array) {
  return Array.prototype.map
    .call(uint8Array, (x) => ('00' + x.toString(16)).slice(-2))
    .join('');
 },

// 示例使用

// Uint8Array内容
const uint8Array = Uint8Array.from([165, 202, 104, 66, 39, 91, 45, 199, 170, 249, 129, 62, 75, 77, 113, 135]); 
// 输出16进制字符串 a5ca6842275b2dc7aaf9813e4b4d7187
console.log(uint8Array(uint8Arraya))

ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区。

它是一个字节数组,通常在其他语言中称为“byte array”。

你不能直接操作 ArrayBuffer 的内容,而是要通过类型数组对象或 DataView 对象来操作,它们会将缓冲区中的数据表示为特定的格式,并通过这些格式来读写缓冲区的内容。

arraybuffer类型转16进制字符串

javascript
function buf2hex(buffer) {
  return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' +  x.toString(16)).slice(-2)).join('');
}

16进制字符串 转 ArrayBuffer

javascript
var hex = 'AA5504B10000B5'
var typedArray = new Uint8Array(hex.match(/[\da-f]{2}/gi).map(function (h) {
  return parseInt(h, 16)
}))
var buffer = typedArray.buffer;
console.log('buffer',buffer)