2014-08-28 2 views
0

Мне нужен способ получения 8-битного целого числа из шестнадцатеричного значения с использованием JavaScript. До сих пор я пытался использовать parseInt(value, 8), но он, кажется, устарел, и я получаю parseInt(0xbd, 8) = 0 (когда он должен дать -67).javascript: конвертировать шестнадцатеричное значение в подписанное 8-битовое целое

Как это сделать?

+0

Я дал решение подобной проблемы здесь: http://stackoverflow.com/a/34679269/2102748, надеюсь, что это помогает. – milosmns

ответ

3

Я просто искал решение этой проблемы в JavaScript. Ответ от splig не кажется правильным, но это привело меня к решению.

Я считаю, что вы должны вычитать 256 из числа, когда (num> 127).

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

1

Второй параметр parseInt - это radix, вам нужно 16, так как это шестнадцатеричный , потому что вы сказали, что он шестнадцатеричный 0x является необязательным.

Как Вы желаете сделать 8-разрядное знаковое ИНТ вам нужно преобразовать его в подписанный вручную - попробовать что-то вроде

var num = parseInt('bd', 16); 
if (num > 127) { num = 128 - num } 
alert(num); 
Смежные вопросы