在vue中如何把数字或字符串转换为16进制2字节数组?

https://blog.csdn.net/cxygs57...

以上链接的内容有点贴近我的需求,但并不是,

我需要将纯数字的字符串或纯Number类型的值转换为16进制2字节字符串,转换后的字节不能是纯数字的那种类型,以下是例子~

const num = 300;  //'300'也可以,但只能是数字

const byte = [01,2C]  //转换后的字节得带有字母的这种,不能是纯数字的

网上是有字符串或数字转字节的方法,但是转出来都是纯数字的数组并且不是16进制2字节的。

小弟先在这里感谢各位大神的解答,感激不尽!!!!这个问题真的不知道该怎么解决,如果是我表述不清楚欢迎大婶们鞭策

阅读 3.5k
3 个回答
function num2byte(n) {
  const num = +n;
  if(Number.isNaN(num)) return [];
  let str = num.toString(16);
  if(str.length%2) str = '0'+str;
  const byte = [];
  for(let i = 0;i<str.length;i+=2) {
    byte.push(str.slice(i, i+2))
  }
  return byte;
}
function num2Hex(n) {
    const num = Number(n);
    let hexStr = num.toString(16);
    if (hexStr.length % 2 == 1) {
        hexStr = "0" + hexStr;
    }
    return hexStr.match(/(.{2})/g);
}

const b = 1763;
const hexArr = num2Hex(b);
console.log(hexArr);

比如说 1763 这个数字转换为 16 进制,可以表示为 6e3,那么函数返回的就是 ["06", "e3"]

image.png

num = 300;
result = num.toString(16)
resultLength = result.length
result.padStart(resultLength%2==1?resultLength+1:resultLength,0)

只不过是写错,写成 15 了而已。在提取一下就好了

image.png

num = 300;
result = num.toString(16)
resultLength = result.length
result.padStart(resultLength%2==1?resultLength+1:resultLength,0).match(/\w{2}/g)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏