uniapp/vue中,如何计算几个16进制的总和?

固定有5个字节的16进制,把这5个字节的16进制相加,当然了结果也要是一个字节的16进制
(但是希望大神们给我的方法是不管有几个字节的16进制都能通用)

例如:A5+10+00+01+1E
结果:D4

求教大神们这其中的运算过程该怎么写

小弟在这里先感谢各位大神们,感激不尽,祝大神们发财祝大神们娶漂亮老婆

阅读 2.9k
2 个回答

原理很简单, 就是把十六进制先转成十进制相加然后再转成十六
image.png

function addHexNum(...hexNum) {
  const sum = hexNum.reduce((val, hex) => {
    // 将每个16进制数转换为十进制并相加
    return val + parseInt(hex, 16);
  }, 0);

  // 将结果转换回16进制并确保是两位数
  const result = sum.toString(16).toUpperCase().padStart(2, '0');
// 将结果转换回16进制
const result = sum.toString(16).toUpperCase();
  return result;
}

const result = addHexNum('A5', '10', '00', '01', '1E');
console.log(result);

可按照此代码进行处理:

function addHexNumbers(hexArray) {
  const sum = hexArray.reduce((acc, hex) => acc + parseInt(hex, 16), 0);
  return sum.toString(16).toUpperCase();
}

const hexArray = ["A5", "10", "00", "01", "1E"];
const result = addHexNumbers(hexArray);
console.log(result); // 输出 D4
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏