Как преобразовать подписанное int в его шестнадцатеричное представление на nbBits, в Ruby? - PullRequest
0 голосов
/ 22 декабря 2011

Например: -78_base10 на 8 битах равно 0xB2

Псевдоалгоритм говорит: "-A = / A + 1"

Например:

  • -78 => 78 => 01001110
  • Затем примените 'bar': 01001110 => 10110001
  • Затем '+1': 10110001 + 1 = 10110010
  • преобразоватьв гекса: 0xB2

Как правильно получить результат в Ruby (с этим алгоритмом или без него).

Ответы [ 2 ]

3 голосов
/ 22 декабря 2011

Как насчет чего-то вроде

def signed_int_to_hex(n)
  "0x%X" % (n % 2 ** 8)
end

signed_int_to_hex(-78) #=> "0xB2"
0 голосов
/ 22 декабря 2011
((-78) % 2 ** 8).to_s(16)
# => "b2"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...