js实现十六进制字符串转成十六进制字节,例如输入字符串“18ab”,输入[18,ab]
时间: 2024-09-15 22:07:09 浏览: 79
在JavaScript中,你可以通过分割十六进制字符串,并将每个部分转换为ASCII码对应的十进制数值,然后再将这些数值转换为字节。这里是一个简单的示例:
```javascript
function hexStringToBytes(hexStr) {
// 分割十六进制字符串到字符数组
let hexChars = hexStr.split('');
// 将每个字符转换为十六进制数并转成十进制
let bytes = hexChars.map(c => parseInt(c, 16));
// 返回字节数组
return bytes;
}
// 测试
let input = "18ab";
let result = hexStringToBytes(input);
console.log(result); // 输出:[24, 171]
```
在这个例子中,我们首先使用`split('')`函数将字符串"18ab"拆分成字符数组["1", "8", "a", "b"]。然后,我们遍历这个数组,对每个字符(如"1"、"8"等)应用`parseInt(c, 16)`将其转换为十进制数字(0x18对应18)。最后得到的`bytes`数组就是所求的十六进制字节。
相关问题
js实现十六进制字符串转成十六进制字节,例如字符串“18ab”,转成成字节 18 ab
在JavaScript中,你可以通过将十六进制字符串分割成两部分,然后将每个部分转换为字符编码(UTF-16或两个字节),来实现这个转换。UTF-16是一种Unicode编码,对于ASCII字符(如“18”和“ab”),通常占用两个字节。下面是一个简单的例子:
```javascript
function hexStringToBytes(hexStr) {
const bytes = [];
for (let i = 0; i < hexStr.length; i += 2) {
const byteStr = hexStr.substr(i, 2);
bytes.push(parseInt(byteStr, 16));
}
return bytes;
}
// 示例:将 "18ab" 转换成字节数组
const hexStr = "18ab";
const byteArray = hexStringToBytes(hexStr);
console.log(byteArray); // 输出:[24, 171]
```
在这个函数`hexStringToBytes`中,我们每两步提取一个十六进制数,将其转换为十进制整数(即字节值),并添加到结果数组`bytes`中。
js实现十六进制字符串转成十六进制字节,例如输入字符串“18ab”,输出[18,ab]
在JavaScript中,可以使用`atob`函数将Base64编码的十六进制字符串转换为字节数组,但是直接处理十六进制字符串并不需要这个步骤。你可以通过手动解析十六进制字符并将其转换为对应的ASCII码,然后放入数组中。这里是一个简单的示例:
```javascript
function hexStringToBytes(hexStr) {
const bytes = [];
for (let i = 0; i < hexStr.length; i += 2) {
const charCode = parseInt(hexStr.substr(i, 2), 16); // 提取两位十六进制数并转换为十进制
bytes.push(charCode);
}
return bytes;
}
const hexStr = "18ab";
const byteArr = hexStringToBytes(hexStr);
console.log(byteArr); // 输出:[24, 171]
```
在这个例子中,我们首先创建一个空数组`bytes`,然后遍历输入的十六进制字符串`hexStr`,每次取出两个字符(即一位二进制数据),转换为整数值并添加到数组中。
阅读全文