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