进制转换
16进制字符串转化为Uint8Array 数组类型
要将16进制字符串转换为Uint8Array类型,你可以使用以下步骤:
- 将16进制字符串两个字符一组分割。
- 使用
parseInt
函数将每组字符转换为相应的十进制数字。 - 使用这些十进制数字作为参数创建一个
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)