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

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

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

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

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

阅读 3.2k
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
推荐问题
宣传栏