javascript:将十六进制值转换为带符号的8位整数

时间:2014-08-28 10:14:51

标签: javascript parseint

我需要一种使用JavaScript从十六进制值中获取带符号的8位整数的方法。到目前为止,我已尝试使用parseInt(value, 8),但它似乎已被弃用,我得到parseInt(0xbd, 8) = 0(当它应该给-67时)。

我该怎么做?

2 个答案:

答案 0 :(得分:4)

我只是在javascript中搜索此解决方案。 splig的答案似乎不正确,但它引导我找到解决方案。

我相信你应该从num中减去256(num> 127)。

var num = parseInt('ff', 16);
if (num > 127) { num = num - 256 }
alert(num);

答案 1 :(得分:1)

parseInt的第二个参数是基数,你需要16作为十六进制 因为你告诉它它是十六进制的0x是可选的。

由于你想要做一个8位有符号的int,你需要将它转换为手动签名 - 尝试类似

var num = parseInt('bd', 16);
if (num > 127) { num = 128 - num }
alert(num);