vue/uniapp中,如何将十六进制字符串转换成有符号 2 补码中的十进制?

作者站长头像
站长
· 阅读数 19

需要判断有没有负号,有负号拿有负号的值,没负号就拿正常的的值,

例如c4转换后为-60,格式就是像c4这样的,全是两位的

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

回复
1个回答
avatar
test
2024-06-27

都是 int8 呗?那直接位移更简洁一些:

function hex2dec_int8(hex) {
  const BITS = 8;
  const dec = parseInt(hex, 16);
  return 0x80000000 >> (32 - BITS) | dec;
}

console.log(hex2dec_int8('c4'));

可以直接简化成:

const hex2dec_int8 = (hex) => -128 | parseInt(hex, 16);

console.log(hex2dec_int8('c4'));

应该不会有比这个更简便更高效的写法了。

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容