Bitmanipulation - PullRequest
       8

Bitmanipulation

1 голос
/ 19 ноября 2011

Мне нужна функция JavaScript, которая конвертирует 4-байтовая шестнадцатеричная строка в BIN (используйте часть байтов) в DEC

Эти данные поступают от датчика, и измеренные значения распределяются в этой строке.

пример ("ff027608", BitOffset = 7, BitSize = 4)

11111111000000100111011000001000 -> 1000 -> 8 (DEC)

----------- ^^^^

Начиная со смещения 7 4-битное значение

function convert(bp,BitOffset,BitSize){
  bp >>= parseFloat(BitOffset);
  bp <<= parseFloat(BitSize);
  return bp;
}; 

1) Как конвертировать шестнадцатеричное в длинное целое число

2) Как вырезать 4-байтовое значение ICHD

3) Как мне преобразовать его в DEC

Или есть лучший способ

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 19 ноября 2011

Вы можете конвертировать из hex do dec с помощью:

var dec = parseInt(hex, 16);

и из dec в hex с

var hex = dec.toString(16);

и из bin в dec с

var dec = parseInt(bin, 2);

и из декабря в корзину с

var bin = dec.toString(2);
0 голосов
/ 19 ноября 2011

Я думаю, что это более простой способ:

function convert(input, offset, size){
    var result = input.substr(offset, size);
    result = parseInt(result, 2);

    return result;
}

Вы можете конвертировать гекс в, используя parseInt(hex, 16), но я боюсь, что JS не поддерживает long (AFAIK).Если вам нужно долго, вероятно, вы должны разделить его на два целых.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...